Auffinden der Zellwerte in Excel-VBA

Mit: Excel 2007/Win 7

Zuerst habe ich eine subroutine zu finden, die den dynamischen Bereich in einem Arbeitsblatt namens "WIP':

Sub GetWIPRange()
Dim WIPrng1 As Range
Dim WIPrng2 As Range
Sheets("WIP").Activate
Set WIPrng1 = Cells.find("*", [a1], , , xlByRows, xlPrevious)
Set WIPrng2 = Cells.find("*", [a1], , , xlByColumns, xlPrevious)
If Not WIPrng1 Is Nothing Then
    Set WIPrng3 = Range([a1], Cells(WIPrng1.Row, WIPrng2.Column))
Application.Goto WIPrng3
Else
    MsgBox "sheet is blank", vbCritical
End If
End Sub

Nun möchte ich finden, einen bestimmten Vertrag-Nummer innerhalb des vorstehend definierten Bereichs:

Sub find()
Dim find As Long
find = Application.WorksheetFunction.Match("545499", Range(WIPrng3.Parent.Name & "!" & WIPrng3.Address), 0)
MsgBox "Found at row : " & find
End Sub

Aber die Fehlermeldung bekomme ich aus dem code oben ist:

Run-time error '91':
Objekt-variable Mit block-variable nicht festgelegt.

  1. Wie kann ich dieses Problem beheben code so, dass er gibt die Nummer der Zeile der Wert ich Suche?
  2. Gibt es einen effizienteren Weg finden, die Zelle Werte mit VBA? Zum Beispiel, wenn ich viele Arbeitsblätter und will ich Suche alle Arbeitsblätter und einen Wert zurückgeben den spezifischen Zeilennummer und Arbeitsblatt Lage.

Vielen Dank!

InformationsquelleAutor AME | 2011-11-28

Schreibe einen Kommentar