En essayant de résoudre un “invalid use of Null” en VBA
Rapide extrait de la première:
Dim GUID As String
Dim givenNames, familyName, preferredName, gender, comments, carer, medicareNumber, patientNumber As String
Dim dob As Variant
Dim deceased, resolved, consultNotes As Boolean
Dim age As Variant
givenNames = Null
familyName = Null
preferredName = Null
gender = Null
dob = Null
comments = Null
deceased = False
resolved = False
carer = Null
age = Null
consultNotes = False
patientNumber = Null ' This is where I get the error
Aucune idée pourquoi cette dernière variable permettrait de voyage? J'ai assigné la valeur Null pour un tas d'autres chaînes sans erreurs.
patientNumber est la seule variable que vous avez défini comme une chaîne de caractères. Vous devez spécifier le type variable: vous ne pouvez pas définir une liste séparée par des virgules des variables que vous avez dans votre code.
OriginalL'auteur HorusKol | 2011-04-12
Vous devez vous connecter pour publier un commentaire.
En VBA/VB6, les chaînes ne peuvent pas être Null; seules les Variantes peuvent être mis à null. En outre, lorsque vous déclarez des variables inline séparées par des virgules, comme dans la question, seul le dernier sera tapé comme une chaîne de caractères; tous les autres sont typés comme des variantes. De les déclarer sur une ligne de type, vous devez comprendre le type
C'est pourquoi il est logique de vous déclarer sur une seule ligne.
(Btw, il convient de noter que
deceased, resolved
sont aussi tapé comme des variantes pour la même raison.)OriginalL'auteur Thomas
La raison pour laquelle il réussit pour
givenNames
, etc. est que vous avez involontairement défini comme étant de type Variant. Il échoue pourpatientNumber
, parce que vous avez correctement défini que comme unString
, et les chaînes ne accepte pas les valeurs Null.Dans un
Dim
déclaration, leAs <type>
clause s'applique à chaque variable dans la liste, donc en les mettant qu'à la fin de la liste, vous appliqué le type explicite seulement à la dernière variable répertorié. L'implicite type deVariant
est appliqué pour les autres.np - heureux que nous pourrions les aider.
OriginalL'auteur Steve Jorgensen
Quand je suis tombé sur ce problème sans en connaître le type implicites de
Variant
, j'ai été en mesure d'utiliser le travail autour de la définition d'une variable supplémentaire commeBogusVariable
à la fin de laDim
déclaration de la liste.OriginalL'auteur Darrell