Jonathan sta creando una macro e deve riempire un intervallo di celle con valori. Ad esempio, se ha bisogno di riempire l’intervallo A1: C1, attualmente ci vogliono tre istruzioni per riempire quell’intervallo:

Range("A1") = "Test1"

Range("B1") = "Test2"

Range("C1") = "Test3"

Si chiede se c’è un modo per riempirli in una singola affermazione, simile alla seguente:

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

La sintassi desiderata di Jonathan è vicina, ma non funzionerà. Ecco come funzionerà:

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

Notare l’uso dell’istruzione Array, che indica a VBA che ciò che segue deve essere considerato una sequenza di valori da utilizzare nella sequenza di celle a sinistra dell’operatore. È interessante notare che potresti inserire valori in variabili e utilizzare anche l’istruzione Array, come mostrato qui:

sOne = "Apples"

sTwo = "Oranges"

sThree = "Artichokes"

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

Puoi anche lavorare con variabili straight, se preferisci:

Dim sMyStrings(2) As String sMyStrings(0) = "Apples"

sMyStrings(1) = "Oranges"

sMyStrings(2) = "Artichokes"

Range("A1:C1") = sMyStrings

Il codice sopra potrebbe anche essere riscritto, come segue:

Dim sMyStrings(2) As String sMyStrings = Array("Apples", "Oranges", "Artichokes")

Range("A1:C1") = sMyStrings

Infine, se si volesse inserire i valori in una singola colonna anziché in una riga, sarebbe necessario utilizzare la funzione Transpose, in questo modo:

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

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (11702) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.

Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: