finden, wenn die `find` - Methode gibt `nichts` im excel-vba
Ich versuche zu finden, eine id in eine Liste und bekommen es Adresse, aber auch um eine situation, wenn nichts gefunden wird.
Hier ist, was ich habe:
Function find_in_two_ranges_two_sheets(ws1 As String, col1 As Integer) As Range
Dim rows1 As Integer
rows1 = Get_Rows_Generic(ws1, 1)
Dim range1 As Range ' range of first search
With Worksheets(ws1)
Set range1 = .Range(.Cells(1, col1), .Cells(rows1, col1))
End With
Dim found1 As Range
Set found1 = range1.Find("test id", LookIn:=xlValues)
If found1 = Nothing Then
MsgBox "nothing"
Else
MsgBox found1.AddressLocal
End If
Set find_in_two_ranges_two_sheets = range1
End Function
Sub test_stuff()
Dim x As Range
Set x = find_in_two_ranges_two_sheets("usersFullOutput.csv", 1)
MsgBox x.Address
End Sub
Wenn ich test_stuff()
bekomme ich einen Fehler in der Funktion in der Zeile If found1 = Nothing Then
mit dem Wort Nothing
hervorgehoben. "Kompilierungs-Fehler; Ungültige Verwendung des Objekts". Nicht sicher, was zu tun ist.
versuchen
cool - Antwort Hinzugefügt
If found1 is Nothing Then
cool - Antwort Hinzugefügt
InformationsquelleAutor dwstein | 2015-03-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen
range
Objekt, das Sie verwenden müssenis
statt=
:Erklärung:
Genommen von Allen Browne
Nothing
ist den nicht initialisierten Zustand einer Objekt-variable. Ein Objekt kann nicht einfach eine variable wie eine Zahl oder eine Zeichenfolge, so dass es kann nie 0 oder "". Es muss ein umfassender Struktur (ein Textfeld -, form -, recordset, querydef, ...)Da ist es nicht einfach Wert, Sie können nicht testen, ob es gleich etwas. VBA hat eine
Is
Schlüsselwort, das Sie verwenden.InformationsquelleAutor tospig
Nicht, dass es zu lösen? Wenn ja, überprüfen Sie die checkbox gelöst.
Einen anderen Weg zu suchen, passenden Schlüssel-Werte und die Adresse ist die Verwendung der Match-Funktion gibt die Zeile den passenden Schlüssel Wert, wenn gefunden. Es gibt #N/A wenn nicht gefunden. Sie können dann in einer Schleife durch die Spalte mit if(ISNA(Rangeaddress))...
InformationsquelleAutor rgo