Tipo di dati stringa VBA (variabile Dim)

Tipo variabile stringa

Il tipo di dati String è uno dei tipi di dati più comuni in VBA. Memorizza "stringhe" di testo.

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

1 Dim strName as String

Per assegnare un valore a una variabile si usa il segno di uguale:

1 strName = "Fred Smith"

Inserendo questo in una procedura si presenta così:

12345678 Sub strEsempio()'dichiarare la stringaDim strName come stringa'popola la stringastrName = "Fred Smith"'mostra la finestra del messaggioMsgBox strnameFine sottotitolo

Se esegui il codice sopra, verrà mostrata la seguente finestra di messaggio.

Variabile stringa fissa

Esistono in realtà 2 tipi di variabili stringa: fisse e variabili.

La variabile stringa "variabile" (mostrata nell'esempio precedente) consente alla stringa di essere di qualsiasi lunghezza. Questo è più comune.

La variabile stringa "fissa" definisce la dimensione della stringa. Una stringa fissa può contenere fino a 65.400 caratteri.

1 Dim strName come stringa *20

Quando si definisce una variabile fissa, il numero di caratteri nella variabile viene bloccato, anche se si utilizzano meno caratteri.

Notare gli spazi nel grafico sottostante: la variabile ha dei segnaposto per il resto dei caratteri nella stringa poiché "Fred Smith" è inferiore a 20 caratteri.

Tuttavia, se hai dichiarato una stringa senza specificare la lunghezza, la stringa conterrà solo il numero di caratteri che le viene passato.

Dichiara variabile stringa a livello di modulo o globale

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

Invece, puoi dichiarare variabili String 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 stringa

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

Tuttavia, se si utilizza la parola chiave Public per dichiarare la variabile stringa, l'errore non si verifica e la procedura viene eseguita perfettamente.

Converti valori memorizzati come stringa

Potrebbe esserci un momento in cui in Excel sono presenti valori archiviati come testo, ad esempio potresti aver importato un file CSV che potrebbe aver inserito testo anziché numeri.

Nota che il valore in A1 è allineato a sinistra, indicando un valore di testo.

Puoi usare a Funzione VBA può essere usato per convertire questi numeri in testo

12345678 Sub ConvertValue()'popola la stringastrQty = Intervallo ("A1")'popola il doppio con la stringadblQty = strQty'popola l'intervallo con il numeroIntervallo("A1") = dblQtyFine sottotitolo

Una volta eseguito il codice, il numero si sposterà a destra, indicando che ora è memorizzato come numero.

Ciò è particolarmente utile quando si scorre un ampio intervallo di celle.

123456789101112131415 Sub ConvertValue()Dim strQty As String, dblQty As DoubleDim rw As Integer, i As Integer'conta le righe da convertirerw = Range("A1", Range("A1").End(xlDown)).Rows.Count"scorri le celle e converti ciascuna in un numero"Per i = 0 Per rw - 1'popola la stringastrQty = Range("A1").Offset(i, 0)'popola il doppio con la stringadblQty = strQty'popola l'intervallo con il numeroIntervallo("A1").Offset(i, 0) = dblQtyAvanti ioFine sottotitolo

Il risultato sarà che tutte le celle verranno quindi convertite in numeri

Stanco di cercare esempi di codice VBA? Prova AutoMacro!

Converti stringa memorizzata come valori

Allo stesso modo, potrebbero esserci valori che è necessario convertire da una stringa a un valore, ad esempio se si richiede uno zero iniziale su un numero di telefono.

123456789101112131415 Sub ConvertString()Dim strPhone As String, dblPhone As DoubleDim rw As Integer, i As Integer'conta le righe da convertirerw = Range("A1", Range("A1").End(xlDown)).Rows.Count"scorri le celle e converti ciascuna in un numero"Per i = 0 Per rw - 1'popola la stringadblPhone = Range("A1").Offset(i, 0)'popola il doppio con la stringastrPhone = "'0" & dblPhone'popola l'intervallo con il numeroIntervallo("A1").Offset(i, 0) = strphoneAvanti ioFine sottotitolo

Nota che devi iniziare la stringa di testo con un apostrofo ('), prima dello zero per dire a Excel di inserire il valore come stringa.

wave wave wave wave wave