Le problème est que !=
cela ne fonctionne pas en tant que fonction dans Excel VBA.
Je veux pouvoir utiliser
If strTest != "" Then
au lieu de If strTest = "" Then
Y a-t-il une autre approche pour faire cela en plus !=
?
Ma fonction d'imiter !=
est
Sub test()
Dim intTest As Integer
Dim strTest As String
intTest = 5
strTest = CStr(intTest) ' convert
Range("A" + strTest) = "5"
For i = 1 To 10
Cells(i, 1) = i
If strTest = "" Then
Cells(i, 1) = i
End If
Next i
End Sub
!=
et non<>
?!=
ne fonctionne pas dans vba, ou quel est l'opérateur d'inégalité dans vba?Réponses:
Parce que l'opérateur d'inégalité dans VBA est
<>
l'opérateur
!=
est utilisé en C #, C ++.la source
Dans VBA, l'
!=
opérateur est l'Not
opérateur, comme ceci:la source
Not
est l'opérateur d'inversion logique, qui correspond à!
dans les langages de style C.Juste une note. Si vous souhaitez comparer une chaîne avec
""
, dans votre cas, utilisezou même juste
au lieu.
la source
<> ""
<> ""
et produiraient le même p-code queLen(str)
.[3][C][A][T]
. Une chaîne "vide" a un[0]
pour les premiers octets et la vérification duLen
permet au code de simplement vérifier et comparer des nombres entiers. En outre, lorsque vous effectuez un,= ""
cette seconde""
doit d'abord être allouée comme sa propre chaîne en mémoire, puis comparée à votre chaîne cible.Len(str) > 0
est environ deux fois plus rapide questr <> ""
pour 10 millions d'itérations. Cela dit, nous parlons ici de micro-optimisation extrême (0,36 contre 0,72 seconde pour 10 millions d'itérations), donc je vais certainement m'en tenir à la plus lisiblestr <> ""
.Essayez d'utiliser à la
<>
place de!=
.la source