كيف أقوم بعمل عدد صحيح إلى Null في Excel VBA؟
سؤال
أحاول اكتشاف ما إذا كان قد تم تعيين عدد صحيح ، وإذا لم يكن الأمر كذلك ، تخطي معظم الكود في الحلقة (باستخدام عبارة if). هذا ما لدي من أجل.
Do While hws.Cells(r, 9).Value <> ""
On Error Resume Next
ar = Null
ar = aws.Range("A:A").Find(hws.Cells(r, 2).Value).Row
If Not IsNull(ar) Then
'work with ar'
End If
r = r + 1
Loop
ومع ذلك ، عندما أقوم بتشغيله ، ar = Null
لديه مشاكل. تقول "الاستخدام غير الصالح من فارغ".
المحلول
العثور على إرجاع مجموعة:
Dim rf As Range
With aws.Range("A:A")
Set rf = .Find(hws.Cells(r, 2).Value)
If Not rf Is Nothing Then
Debug.Print "Found : " & rf.Address
End If
End With
-- http://msdn.microsoft.com/en-us/library/aa195730(office.11).aspx
نصائح أخرى
لا يمكن أن تكون المتغيرات المحددة بأنها عدد صحيح فارغة في VBA. سيكون عليك أن تجد طريقة أخرى لفعل ما تريد. على سبيل المثال ، استخدم نوع بيانات مختلف أو استخدم رقمًا سحريًا للإشارة إلى NULL (على سبيل المثال -1).
في رمز المثال الخاص بك ، سيتم تعيين إما AR قيمة طويلة (Range.row طويلة) أو سوف يرمي خطأ.
ما عليك سوى استخدام البديل و isempty:
Dim i
If IsEmpty(i) Then MsgBox "IsEmpty"
i = 10
If IsEmpty(i) Then
MsgBox "IsEmpty"
Else
MsgBox "not Empty"
End If
i = Empty
If IsEmpty(i) Then MsgBox "IsEmpty"
'a kind of Nullable behaviour you only can get with a variant
'do you have integer?
Dim j as Integer
j = 0
If j = 0 Then MsgBox "j is 0"
لا تنتمي إلى StackOverflow