Come duplicare i dati e ordina un array multidimensionale VBA in Excel

April 18

Come duplicare i dati e ordina un array multidimensionale VBA in Excel


Applicazione di Visual Basic (VBA) è il linguaggio di programmazione che Excel incorpora nel proprio editor di Macro. Il VBE (Visual Basic Editor) editor di macro in Microsoft Excel consente agli utenti di scrivere semplici programmi che automatizzano le attività ridondanti. Qui scriveremo una macro VBA che duplicare i dati in un foglio di lavoro, ordinare in un array multidimensionale e scrivere in un nuovo foglio di lavoro. Questo processo è utile quando è necessario un foglio di lavoro ordinato, ma l'originale, foglio di lavoro non differenziati deve rimanere intatto.

istruzione

1 Avviare Excel facendo clic su "Start", "Microsoft Office", "Excel".

2 Avviare il Visual Basic Editor (VBE) premendo il tasto "ALT" e "F11" simultaneamente.

3 Scrivi il processo per la copia di un foglio di lavoro in un array multidimensionale. Selezionare il seguente codice e copiarlo nella VBE:

Sub Read_Into_Array ()

Dim arrdata () As Variant

Dim ColACount As Long

Dim i As Long

ColACount = Range (Range ( "A1"), Range ( "A" e Rows.Count) .End (xlUp)). Conte

ReDim arrdata (da 1 a ColACount, 1 a 2)

Per i = 1 a ColACount

arrData(i, 1) = Range("A" & i).Value

arrdata (i, 2) = Range ( "B" & amp; i) .Value

Next i

End Sub

4 Ordinare l'array con il processo di Bubble Sort VBA. Copiare e incollare il seguente codice sotto il codice del passaggio precedente. Sarà ordinare la matrice bidimensionale:

Sub Sort_Array ()

SortColumm1 = 0

SortColumn2 = 3

Per i = LBound (ArrayName, 1) Per UBound (ArrayName, 1) - 1

For j = LBound(ArrData, 1) To UBound(ArrData, 1) - 1

Condizione1 = arrdata (j, SortColumn1)> arrdata (j + 1, SortColumn1)

Condizione2 = arrdata (j, SortColumn1) = arrdata (j + 1, SortColumn1) e _

Arrdata (j, SortColumn2)> arrdata (j + 1, SortColumn2)

Se Condizione1 o Condizione2 poi

Per y = LBound (arrdata, 2) Per UBound (arrdata, 2)

t = arrdata (j, y)

Arrdata (j, y) = arrdata (j + 1, y)

ArrayName (j + 1, y) = t

Successivo y

Finisci se

Il prossimo

Il prossimo

End Sub

5 Creare il nuovo foglio di calcolo che conterrà i dati ordinati. Copiare e incollare il seguente codice sotto il codice elencato finora:

Sub New_Worksheet ()

WS Dim come foglio di lavoro

Set WS = Sheets.Add

End Sub

6 Copiare la matrice al nuovo foglio di lavoro. Copiare e incollare il seguente codice sotto il codice creato in precedenza:

Copy_Array Sub ()

[A1] .Resize (UBound (myArr), UBound (Application.Transpose (myArr))) = myArr

End Sub

7 Salvare la macro. Fare clic su "File", "Salva", dargli un nome e fare clic su "Salva".

8 Eseguire la macro. Aprire un foglio di lavoro che si desidera copiare e ordinare. Fai clic su "Strumenti", "Macro", selezionare la macro appena creata. Il nuovo foglio di lavoro apparirà e popolare automaticamente.

Consigli e avvertenze

  • Il codice di esempio qui sarà ordinare l'array in ordine crescente (az, 0-9) Per invertire l'ordine del genere, cambiare il ">" nelle linee quinta e settima del passaggio da quattro a "<".