Riempire un intervallo di celle con valori (Microsoft Excel)
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")
Si noti 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 nelle 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 vuoi che i valori siano inseriti in una singola colonna anziché in una riga, dovresti usare 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 (11701) si applica a Microsoft Excel 97, 2000, 2002 e 2003.
Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: