Problem polega na tym, !=
że nie działa jako funkcja w programie Excel VBA.
Chcę móc korzystać
If strTest != "" Then
zamiast If strTest = "" Then
Czy istnieje inne podejście do zrobienia tego poza !=
?
Moją funkcją naśladowania !=
jest
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
!=
i nie<>
?!=
nie działa w VBA lub jaki jest operator nierówności w VBA?Odpowiedzi:
Ponieważ operator nierówności w VBA to
<>
If strTest <> "" Then .....
operator
!=
jest używany w językach C #, C ++.źródło
W VBA
!=
operator jestNot
operatorem, na przykład:If Not strTest = "" Then ...
źródło
Not
jest logicznym operatorem inwersji, który odpowiada!
językom w stylu C.Tylko uwaga. Jeśli chcesz porównać ciąg z
""
, w twoim przypadku, użyjIf LEN(str) > 0 Then
lub nawet po prostu
If LEN(str) Then
zamiast.
źródło
<> ""
<> ""
i wyprodukowałaby ten sam kod p coLen(str)
.[3][C][A][T]
. „Pusty” ciąg znaków ma[0]
pierwsze bajty, a sprawdzenieLen
pozwala kodowi po prostu sprawdzić i porównać liczby całkowite. Ponadto, gdy wykonujesz= ""
tę sekundę,""
najpierw należy ją zaalokować jako własny ciąg w pamięci, a następnie porównać z ciągiem docelowym.Len(str) > 0
około dwa razy szybszym niż wstr <> ""
przypadku 10 milionów iteracji. To powiedziawszy, mówimy tutaj o ekstremalnej mikro-optymalizacji (0,36 vs 0,72 sekundy przez 10 milionów iteracji), więc na pewno pozostanę przy bardziej czytelnymstr <> ""
.Spróbuj użyć
<>
zamiast!=
.źródło