O problema é que !=
não funciona como função no excel vba.
Eu quero ser capaz de usar
If strTest != "" Then
ao invés de If strTest = "" Then
Existe outra abordagem para fazer isso !=
?
Minha função de imitar !=
é
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
!=
e não é<>
?!=
que não funciona em vba, ou qual é o operador de desigualdade em vba?Respostas:
Porque o operador de desigualdade no VBA é
<>
o operador
!=
é usado em C #, C ++.fonte
No VBA, o
!=
operador é oNot
operador, assim:fonte
Not
é o operador de inversão lógica, que corresponde a!
em linguagens de estilo C.Apenas uma nota. Se você quiser comparar uma string com
""
, no seu caso, useou mesmo apenas
em vez de.
fonte
<> ""
<> ""
e produziria o mesmo código-p queLen(str)
.[3][C][A][T]
. Uma string "vazia" tem um[0]
para os primeiros bytes e a verificação deLen
permite que o código apenas verifique e compare números inteiros. Além disso, quando você faz um,= ""
aquele segundo""
deve ser alocado como sua própria string primeiro na memória e, em seguida, comparado à string de destino.Len(str) > 0
é cerca de duas vezes mais rápido do questr <> ""
para 10 milhões de iterações. Dito isso, estamos falando de micro-otimização extrema aqui (0,36 contra 0,72 segundos para 10 milhões de iterações), então, definitivamente, ficarei com a mais legívelstr <> ""
.Tente usar em
<>
vez de!=
.fonte