Проблема в том, что !=
не работает функция в excel vba.
Я хочу иметь возможность использовать
If strTest != "" Then
вместо того If strTest = "" Then
Есть ли другой подход к этому !=
?
Моя функция мимических !=
IS
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
!=
и нет<>
?!=
не работает в vba, или что такое оператор неравенства в vba?Ответы:
Поскольку оператор неравенства в VBA имеет вид
<>
оператор
!=
используется в C #, C ++.источник
В VBA
!=
оператором являетсяNot
оператор, например:источник
Not
является оператором логической инверсии, который соответствует!
в языках C-стиля.Просто примечание. Если вы хотите сравнить строку
""
, в вашем случае используйтеили даже просто
вместо.
источник
<> ""
<> ""
и выдадут тот же p-код, что иLen(str)
.[3][C][A][T]
. «Пустая» строка имеет[0]
первые байты, и проверкаLen
позволяет коду просто проверять и сравнивать целые числа. Кроме того, когда вы делаете это,= ""
эта вторая""
должна сначала выделяться как собственная строка в памяти, а затем сравниваться с вашей целевой строкой.Len(str) > 0
примерно в два раза быстрее, чемstr <> ""
за 10 миллионов итераций. Тем не менее, мы говорим здесь об экстремальной микрооптимизации (0,36 против 0,72 секунды для 10 миллионов итераций), поэтому я определенно буду придерживаться более удобочитаемойstr <> ""
.Попробуйте использовать
<>
вместо!=
.источник