Wie kann ich eine ganze Zahl auf null in Excel VBA machen?
Frage
Ich versuche, ob eine ganze Zahl zu erfassen, wurde festgelegt, und wenn nicht, überspringen die meisten der Code in der Schleife (mit einer if-Anweisung). Hier ist, was ich habe so für.
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
Allerdings, wenn ich es laufen, hat ar = Null
Probleme. Er sagt: "Ungültige Verwendung von Null".
Lösung
einen Bereich finden Rückgabe:
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
Andere Tipps
Variablen als Integer definiert ist, kann nicht Null in VBA sein. Sie müssen einen anderen Weg finden zu tun, was Sie wollen. zB einen anderen Datentyp verwenden oder eine magische Zahl verwendet null, um anzuzeigen (zB -1).
In Ihrem Beispiel-Code wird entweder ar einen Long-Wert zugewiesen werden (Range.Row ist ein Long) oder es wird einen Fehler werfen.
verwenden nur eine Variante und 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"