Riepilogo
Questo articolo contiene procedure di Visual Basic, Applications Edition Microsoft di esempio che è possibile usare per l'uso con diversi tipi di matrici.
Ulteriori informazioni
Microsoft fornisce esempi di programmazione solo per illustrazioni, senza garanzie espresse o implicite. Sono incluse, a titolo esemplifiche, le garanzie implicite di commerciabilità o idoneità per uno scopo specifico. In questo articolo si presuppone che si abbia familiarità con il linguaggio di programmazione che viene illustrato e con gli strumenti usati per creare ed eseguire il debug delle routine. I tecnici del supporto Tecnico Microsoft possono spiegare le funzionalità di una particolare procedura, ma non modificarli per fornire funzionalità aggiuntive o creare procedure in base a specifici requisiti. NOTA: nelle procedure Visual Basic, Applications Edition, le parole dopo l'apostrofo (') sono commenti.
Per riempire una matrice e quindi copiarla in un foglio di lavoro
-
Aprire una nuova cartella di lavoro e inserire un foglio modulo di Visual Basic.
-
Digitare il codice seguente nel foglio modulo.
Sub Sheet_Fill_Array() Dim myarray As Variant myarray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) Range("a1:a10").Value = Application.Transpose(myarray) End Sub
-
Selezionare Foglio1.
-
Scegliere Macro dal menu Strumenti e quindi fare clic su Macro.
-
Nella finestra di dialogo Macro fare clic su Sheet_Fill_Array e quindi su Esegui.
Per accettare valori da un foglio di lavoro e riempire la matrice
-
Digitare i valori in Foglio1 nelle celle A1:A10.
-
In un foglio modulo di Visual Basic digitare il codice seguente:
Sub from_sheet_make_array() Dim thisarray As Variant thisarray = Range("a1:a10").Value counter = 1 'looping structure to look at array While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Selezionare Foglio1.
-
Scegliere Macro dal menu Strumenti e quindi fare clic su Macro.
-
Nella finestra di dialogo Macro fare clic su from_sheet_make_array e quindi su Esegui.
Per passare e ricevere una matrice
-
In un foglio modulo digitare il codice seguente:
Sub pass_array() Dim thisarray As Variant thisarray = Selection.Value receive_array (thisarray) End Sub Sub receive_array(thisarray) counter = 1 While counter <= UBound(thisarray) MsgBox thisarray(counter, 1) counter = counter + 1 Wend End Sub
-
Selezionare Foglio1 ed evidenziare l'intervallo A1:A10.
-
Scegliere Macro dal menu Strumenti e quindi fare clic su Macro.
-
Nella finestra di dialogo Macro fare clic su pass_array e quindi su Esegui.
Per confrontare due matrici
-
Creare due intervalli denominati in Foglio1. Assegnare un nome a un intervallo1 e all'altro intervallo2.
Ad esempio, evidenziare l'intervallo di celle A1:A10 e denominarlo intervallo1; evidenziare l'intervallo di celle B1:B10 e denominarlo intervallo2. -
Digitare il codice seguente nel foglio modulo.
Sub compare_two_array() Dim thisarray As Variant Dim thatarray As Variant thisarray = Range("range1").Value thatarray = Range("range2").Value counter = 1 While counter <= UBound(thisarray) x = thisarray(counter, 1) y = thatarray(counter, 1) If x = y Then MsgBox "yes" Else MsgBox "no" End If counter = counter + 1 Wend End Sub
-
Selezionare Foglio2.
-
Scegliere Macro dal menu Strumenti e quindi fare clic su Macro.
-
Nella finestra di dialogo Macro fare clic su compare_two_array e quindi su Esegui.
Verrà visualizzata una finestra di messaggio per ogni confronto.
Per riempire una matrice dinamica
-
In un foglio modulo digitare il codice seguente:
Sub fill_array() Dim thisarray As Variant number_of_elements = 3 'number of elements in the array 'must redim below to set size ReDim thisarray(1 To number_of_elements) As Integer 'resizes this size of the array counter = 1 fillmeup = 7 For counter = 1 To number_of_elements thisarray(counter) = fillmeup Next counter counter = 1 'this loop shows what was filled in While counter <= UBound(thisarray) MsgBox thisarray(counter) counter = counter + 1 Wend End Sub
-
Scegliere Macro dal menu Strumenti e quindi fare clic su Macro.
-
Nella finestra di dialogo Macro fare clic su fill_array e quindi su Esegui.
NOTA: la modifica della variabile "number_of_elements" determinerà le dimensioni della matrice.