Type de variable de chaîne
Le type de données String est l'un des types de données les plus courants dans VBA. Il stocke des « chaînes » de texte.
Pour déclarer une variable String variable, vous utilisez l'instruction Dim (abréviation de Dimension) :
1 | Dim strName en tant que chaîne |
Pour affecter une valeur à une variable, vous utilisez le signe égal :
1 | strName = "Fred Smith" |
Mettre ceci dans une procédure ressemble à ceci :
12345678 | Sous strExample()'déclare la chaîneDim strName en tant que chaîne'remplir la chaînestrName = "Fred Smith"'afficher la boîte de messageNom de chaîne MsgBoxFin du sous-marin |
Si vous exécutez le code ci-dessus, la boîte de message suivante s'affichera.
Variable de chaîne fixe
Il existe en fait 2 types de variables de chaîne - fixes et variables.
La variable chaîne "variable" (illustrée dans l'exemple précédent) permet à votre chaîne d'avoir n'importe quelle longueur. C'est le plus courant.
La variable chaîne "fixe" définit la taille de la chaîne. Une chaîne fixe peut contenir jusqu'à 65 400 caractères.
1 | Dim strName en tant que chaîne *20 |
Lorsque vous définissez une variable fixe, le nombre de caractères de la variable est verrouillé, même si vous utilisez moins de caractères.
Remarquez les espaces dans le graphique ci-dessous - la variable a des espaces réservés pour le reste des caractères de la chaîne, car « Fred Smith » contient moins de 20 caractères.
Cependant, si vous avez déclaré une chaîne sans spécifier la longueur, la chaîne ne contiendra que le nombre de caractères qui lui sont transmis.
Déclarer une variable de chaîne au niveau du module ou au niveau global
Dans l'exemple précédent, vous avez déclaré la variable String dans une procédure. Les variables déclarées avec une procédure ne peuvent être utilisées que dans cette procédure.
Au lieu de cela, vous pouvez déclarer des variables String au niveau du module ou au niveau global.
Niveau du module
Niveau du module les variables sont déclarées en haut des modules de code avec le Faible déclaration.
Ces variables peuvent être utilisées avec n'importe quelle procédure dans ce module de code.
Niveau mondial
Niveau mondial les variables sont également déclarées en haut des modules de code. Cependant, au lieu d'utiliser le Faible déclaration, vous utilisez le Publique pour indiquer que la variable de chaîne est disponible pour être utilisée tout au long de votre projet VBA.
1 | Public strName en tant que chaîne |
Si vous avez déclaré la variable de chaîne au niveau d'un module et que vous l'avez utilisée dans un module différent, une erreur se produirait.
Cependant, si vous utilisez le mot clé Public pour déclarer la variable chaîne, l'erreur ne se produira pas et la procédure fonctionnera parfaitement.
Convertir les valeurs stockées sous forme de chaîne
Il peut arriver que vous ayez des valeurs dans Excel stockées sous forme de texte - par exemple, vous avez peut-être importé un fichier CSV qui peut avoir introduit du texte au lieu de nombres.
Notez que la valeur dans A1 est alignée à gauche, indiquant une valeur de texte.
Vous pouvez utiliser un Fonction VBA peut être utilisé pour convertir ces nombres en texte
12345678 | Sous ConvertValue()'remplir la chaînestrQty = Range("A1")'remplir le double avec la chaînedblQty = strQty'remplir la plage avec le numéroPlage ("A1") = dblQtéFin du sous-marin |
Une fois le code exécuté, le numéro se déplacera vers la droite, indiquant qu'il est maintenant stocké sous forme de numéro.
Ceci est particulièrement utile lorsque vous parcourez une large plage de cellules.
123456789101112131415 | Sous ConvertValue()Dim strQty en tant que chaîne, dblQty en tant que doubleDim rw en tant qu'entier, i en tant qu'entier'compter les lignes à convertirrw = Range("A1", Range("A1").End(xlDown)).Rows.Count'boucle à travers les cellules et convertit chacune en nombrePour i = 0 Pour rw - 1'remplir la chaînestrQty = Range("A1").Offset(i, 0)'remplir le double avec la chaînedblQty = strQty'remplir la plage avec le numéroRange("A1").Offset(i, 0) = dblQtyEnsuite jeFin du sous-marin |
Le résultat sera que toutes les cellules sont ensuite converties en nombres
Fatigué de rechercher des exemples de code VBA ? Essayez AutoMacro !
Convertir la chaîne stockée en tant que valeurs
De même, il peut y avoir des valeurs que vous devez convertir d'une chaîne en une valeur - par exemple, si vous avez besoin d'un zéro non significatif sur un numéro de téléphone.
123456789101112131415 | Sous-chaîne de conversion()Dim strPhone en tant que chaîne, dblPhone en tant que doubleDim rw en tant qu'entier, i en tant qu'entier'compter les lignes à convertirrw = Range("A1", Range("A1").End(xlDown)).Rows.Count'boucle à travers les cellules et convertit chacune en nombrePour i = 0 Pour rw - 1'remplir la chaînedblPhone = Range("A1").Décalage(i, 0)'remplir le double avec la chaînestrPhone = "'0" & dblPhone'remplir la plage avec le numéroRange("A1").Offset(i, 0) = strphoneEnsuite jeFin du sous-marin |
Notez que vous devez commencer la chaîne de texte par une apostrophe ('), avant le zéro afin de dire à Excel d'entrer la valeur sous forme de chaîne.