El problema es que !=
no funciona como función en excel vba.
Quiero poder usar
If strTest != "" Then
en vez de If strTest = "" Then
¿Hay otro enfoque para hacer esto además !=
?
Mi función para imitar !=
es
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
!=
y no<>
?!=
Por qué no funciona en vba, o cuál es el operador de desigualdad en vba?Respuestas:
Porque el operador de desigualdad en VBA es
<>
el operador
!=
se usa en C #, C ++.fuente
En VBA, el
!=
operador es elNot
operador, así:fuente
Not
es el operador de inversión lógica, que corresponde a!
en los lenguajes de estilo C.Solo una nota. Si desea comparar una cadena con
""
, en su caso, useo incluso solo
en lugar.
fuente
<> ""
<> ""
y producirían el mismo código p queLen(str)
.[3][C][A][T]
. Una cadena "vacía" tiene un[0]
para los primeros bytes y la verificaciónLen
permite que el código simplemente verifique y compare enteros. Además, cuando lo hace,= ""
ese segundo""
debe asignarse como su propia cadena primero en la memoria, luego se debe comparar con la cadena de destino.Len(str) > 0
es aproximadamente el doble de rápido questr <> ""
para 10 millones de iteraciones. Dicho esto, estamos hablando de una microoptimización extrema aquí (0.36 vs 0.72 segundos para 10 millones de iteraciones), así que definitivamente me quedaré con la más legiblestr <> ""
.Intente usar en
<>
lugar de!=
.fuente