Masalahnya adalah itu !=
tidak berfungsi sebagai fungsi di excel vba.
Saya ingin bisa menggunakan
If strTest != "" Then
dari pada If strTest = "" Then
Apakah ada pendekatan lain untuk melakukan ini selain !=
?
Fungsi saya untuk meniru !=
adalah
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
!=
dan tidak<>
?!=
tidak berfungsi di vba, atau apa operator ketidaksetaraan di vba?Jawaban:
Karena ketimpangan operator di VBA adalah
<>
operator
!=
digunakan di C #, C ++.sumber
Di VBA,
!=
operator adalahNot
operator, seperti ini:sumber
Not
adalah operator inversi logis, yang terkait dengan!
bahasa gaya C.Hanya sebuah catatan. Jika Anda ingin membandingkan string dengan
""
, dalam kasus Anda, gunakanatau bahkan hanya
sebagai gantinya.
sumber
<> ""
<> ""
dan menghasilkan kode-p yang sama sepertiLen(str)
.[3][C][A][T]
. Sebuah string "kosong" memiliki[0]
untuk byte pertama dan memeriksaLen
memungkinkan kode untuk memeriksa dan membandingkan Integer. Selain itu, ketika Anda melakukan= ""
yang kedua""
harus dialokasikan sebagai stringnya sendiri terlebih dahulu di memori, kemudian dibandingkan dengan string target Anda.Len(str) > 0
sekitar dua kali lebih cepatstr <> ""
dari 10 juta iterasi. Yang mengatakan, kita berbicara tentang pengoptimalan mikro ekstrim di sini (0,36 vs 0,72 detik untuk 10 juta iterasi), jadi saya pasti akan tetap menggunakan yang lebih mudah dibacastr <> ""
.Coba gunakan,
<>
bukan!=
.sumber