Riempire un intervallo di celle con diversi valori

Giorgio sta creando una macro e deve riempire un intervallo di celle con dei valori. Ad esempio, nel caso avesse bisogno di riempire l’intervallo A1:C1, al momento sono necessarie tre istruzioni per riempire quell’intervallo:

Range("A1") = "Test1"
Range("B1") = "Test2"
Range("C1") = "Test3"

Si chiede se c’è un modo per inserirli in un’unica dichiarazione, simile alla seguente:

Range("A1:C1") = ("Test1","Test2","Test3")

La sintassi desiderata di Giorgio è vicino all’essere corretta, ma così com’è non funzionerà. Ecco come funzionerà:

Range("A1:C1") = Array("Test1","Test2","Test3")

Si noti l’uso dell’istruzione Array, che indica a VBA che quanto segue deve essere considerato una sequenza di valori da utilizzare nella sequenza di celle a sinistra dell’operatore. È interessante notare che puoi inserire i valori nelle variabili e utilizzare comunque l’istruzione Array, come mostrato qui:

sOne = "Mele"
sTwo = "Arance"
sThree = "Carciofi"
Range("A1:C1") = Array(sOne, sTwo, sThree)

Puoi anche lavorare con variabili dirette, se preferisci:

Dim sMyStrings(2) As String
sMyStrings(0) = "Mele"
sMyStrings(1) = "Arance"
sMyStrings(2) = "Carciofi"
Range("A1:C1") = sMyStrings

Il codice di cui sopra potrebbe anche essere riscritto, come segue:

Dim sMyStrings(2) As String
sMyStrings = Array("Mele", "Arance", "Carciofi")
Range("A1:C1") = sMyStrings

Infine, se si desidera posizionare i valori in una singola colonna anziché in una riga, è necessario utilizzare la funzione Transpose, in questo modo:

Range("A1:A3") = Application.Transpose(Array("Test1","Test2","Test3"))

Tags: , ,

Ti è stato utile?