2012-07-21 25 views
76

Sorun şu ki, !=, excel vba işlevinde çalışmıyor.Excel VBA'da "! =" Eşdeğeri nedir?

ben yanında != bunu yapmanın başka bir yaklaşım var mı

If strTest != "" Then yerine If strTest = "" Then

kullanımına isterler? VBA eşitsizlik operatörü operatör != C#, C++ kullanılan <>

If strTest <> "" Then 
    ..... 

Çünkü != taklit etmek

Benim işlevi

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 
+1

'! =' Değil '' değil mi? – dasblinkenlight

+0

Sorunuz nedir? Neden '! =' Vba’da çalışmıyor ya da vba’daki eşitsizlik operatörü nedir? – GSerg

+1

http://duckduckgo.com/?q=VBA+comparison+operators –

cevap

24

VBA, != operatör böyle Not operatör geçerli:

If Not strTest = "" Then ... 
+1

Bu yanlış. 'Değil', C tarzı dillerdeki '!' Karşılık gelen mantıksal inversiyon operatörüdür. –

6

Sadece bir not. Eğer senin durumunda, "" bir dize karşılaştırmak istiyorsanız,

If LEN(str) > 0 Then 

ya da bunun yerine hatta sadece

If LEN(str) Then 

kullanın.

+6

VBA'ya yeni bir şekilde yeni insanlar tanıyorum, bu cevap garip görünebilir, ama bu, inanın ya da inanmayın, FAR daha "<>" " – LimaNightHawk

+5

'a karşı kontrol etmekten daha verimlidir. Bu cevabı geri çevirmek için eğlenceli bir gerçek: Visual Basic ve Pascal dilleri Dizeleri başlangıçtaki uzunlukları ve içeriği kendisinden hemen sonra depolar. Diğer yandan, C tabanlı ve Java dilleri uzunluğunu saklamıyor ve dizenin sona erdiğini belirtmek için '\ 0' (null) sonlandırıcısına sahipler. Bu nedenle, VBA'da uzunluğu almak hızlıdır - sadece bellekten bir tamsayı okumaktır - ve Java'da yavaştır - dizgede yinelemeniz gerekir. –

+0

@LimaNightHawk * uzak * daha verimli? Bunu detaylandırır mısın lütfen? Çoğu modern derleyicinin '<> "" desenini yakalayacağını ve "Len (str)" ile aynı p kodunu üreteceğini sanırım. – Roland

İlgili konular