In questo articolo vogliamo mostrare alcuni semplicissimi esempi di macro per iniziare a lavorare con gli array.

1. Macro che crea un Array di numeri e lo copia in un Foglio di lavoro

  1. Apriamo Excel e andiamo nell’editor del Visual Basic di Excel (ALT+F11)
  2. Inserisci il seguente codice
    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
    
  3. Adesso apri il Foglio1 di Excel
  4. Dal menu strumenti vai su Macro e nella finestra che si apre clicca su ESEGUI in corrispondenza della macro “Sheet_Fill_Array

2. Copiare valori da un Foglio di lavoro e inserirli in un Array

  1. Scrivi i valori nel Foglio 1 nelle celle A1:A10.
  2. Nell’editor Visual Basic inserisci questo codice:
    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
    
  3. Apri Foglio1.
  4. Dal menu strumenti vai su Macro e nella finestra che si apre clicca su ESEGUI in corrispondenza della macro “from_sheet_make_array”

3. Visualizzare a schermo i valori di un Array

  1. Usa questo codice:
    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
    
  2. Vai sul Foglio1 e seleziona i valori presenti nelle celle A1:A10.
  3. Adesso puoi eseguire la macro per visualizzare i valori su una finestra

4. Come confrontare due Array

  1. Crea due array nel Foglio1, ad esempio le celle A1:A10 faranno parte del range1 (devi selezionarle e dare un nome all’intervallo “range1”) e B1:B10 del range2 (devi selezionarle e dare un nome all’intervallo “range2”)
  2. Inserisci questo codice macro:
    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
    
  3. Seleziona Foglio 2
  4. Adesso puoi eseguire la macro per visualizzare i valori su una finestra e verrà visualizzata una finestra con un output “Yes” o “No” che indica il risultato del confronto cella per cella

5. Creare un Array dinamico

  1. Crea una macro con questo codice:
    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
    
  2. Esegui la macro “fill_array”. Modificando la variabile “number_of_elements” si determinerà la dimensione dell’array.
Esempi di macro per creare, copiare, confrontare Array

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

albatros54
albatros54 - 442 risposte

vecchio frac - 350 risposte

patel
patel - 257 risposte

Marius44
Marius44 - 256 risposte

Luca73
Luca73 - 180 risposte