Tipo di dati variante VBA (variabile dim)

Variante Tipo Variabile

Una Variant Variant può contenere dati in qualsiasi momento (stringhe, interi, decimali, oggetti, ecc.). Se non dichiari un tipo di variabile, la tua variabile sarà considerata una variante.

Per dichiarare una variabile Variant, si utilizza l'istruzione Dim (abbreviazione di Dimension):

1 Dim varName come Variant
1 Dim rng come variante

Quindi, per assegnare un valore a una variabile, utilizzare semplicemente il segno di uguale:

1 varName = "Giovanni"
1 rng = Fogli (1). Intervallo ("A1")

Inserendo questo in una procedura si presenta così:

12345678910 Sub strEsempio()'dichiarare le variantiDim strName As VariantDim rng come variante'popola le variabilistrName = "Fred Smith"Imposta rng = Fogli (1). Intervallo ("A1")'popola il fogliorng.Value = strNameFine sottotitolo

Se esegui il codice sopra, la cella A1 nel foglio 1 verrà popolata con "Fred Smith"

Con i nomi sopra dichiarati, potremmo concludere che il varName conterrebbe testo, e il objSheet conterrebbe un oggetto foglio di lavoro. Ma in realtà, qualsiasi tipo di dato può essere diretto alla variabile.

Potresti popolare le variabili dichiarate sopra come segue e non si verificherebbe alcun errore.

1 nomevar = 6
1 objSheet - "Fred"

È insolito utilizzare variabili varianti e non è considerata una buona pratica. A volte, tuttavia, le variabili Variant sono utili.

Dichiara Variante Variabile a Livello Modulo o Globale

Nell'esempio precedente, hai dichiarato la variabile Variant all'interno di una procedura. Le variabili dichiarate con una procedura possono essere utilizzate solo all'interno di tale procedura.

Invece, puoi dichiarare le variabili Variant a livello di modulo o globale.

Livello modulo

Livello modulo le variabili sono dichiarate all'inizio dei moduli di codice con il fioco dichiarazione.

Queste variabili possono essere utilizzate con qualsiasi procedura in quel modulo di codice.

Livello globale

Livello globale le variabili sono anche dichiarate all'inizio dei moduli di codice. Tuttavia, invece di usare il fioco affermazione, usi il Pubblico istruzione per indicare che la variabile stringa è disponibile per essere utilizzata in tutto il progetto VBA.

1 strName pubblico come variante

Se si dichiarasse la variabile variant a livello di modulo e la si utilizzasse in un modulo diverso, si verificherebbe un errore.

Se avessi usato la parola chiave Public per dichiarare la variabile variant, l'errore non si sarebbe verificato e la procedura sarebbe stata eseguita perfettamente.

Utilizzo di una variante per popolare Excel

Considera la seguente procedura:

12345678910111213141516171819 Variabile di prova secondaria'dichiarare una stringa per contenere il nome del prodottoDim strProdotto come stringa'dichiarare un numero intero per contenere la quantità di prodottoDim iQty come intero'dichiarare il doppio per mantenere il prezzo del prodotto e il prezzo totaleDim dblPrice as DoubleDim dblTotal come Double'popola le variabilistrProduct = "Farina per tutti gli usi"iQtà = 3dblPrice = "$5,00"dblTotal = "$15,00"'popola il foglio ExcelIntervallo("A1") = strProdottoIntervallo ("A2") = iQtàIntervallo("A3") = dblPriceIntervallo("A4") = dblTotaleFine sottotitolo

Quando eseguiamo questo codice, si verifica il seguente errore.

Fare clic su Debug

Non puoi inserire un simbolo del dollaro nella variabile poiché la variabile è dichiarata come a Doppio, e quindi non può memorizzare valori di stringa.

Dichiarare dblPrezzo e dblTotale as Variants, il che significa che non sei limitato a un tipo di dati.

1 Dim dblPrice come variante
1 Dim dblTotal come variante

Riesegui il codice e i dati appariranno nel foglio Excel come dovrebbero.

Si noti che i dati inseriti in A4 e A5 vengono poi automaticamente convertiti da Excel in numeri.

Dichiarazione di un array dinamico

Le variabili varianti sono utili anche quando si dichiara un array dinamico poiché consentono di modificare le dimensioni dell'array durante l'esecuzione.

Con unMatrice Variante, non è necessario definire la dimensione dell'array. La dimensione si regolerà automaticamente.

123456789 Sub VariantArray()Dim arrList() come variante"Definisci valori"ArrList= Array(1, 2, 3, 4)'Modificare valoriArrList= Array(1,2,3,4,5,6)'Posizione di uscita 4'MsgBox arrVar(4)Fine sottotitolo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave