Range.FindNext-Methode (Excel)
Setzt eine Suche fort, die mit der Find-Methode begonnen wurde. Sucht nach der nächsten Zelle, die dieselben Bedingungen erfüllt, und gibt ein Range-Objekt zurück, das diese Zelle darstellt. Dies hat keine Auswirkung auf die Auswahl oder die aktive Zelle.
Syntax
Ausdruck. FindNext (Nachher)
Ausdruck Eine Variable, die ein Range-Objekt darstellt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
After | Optional | Variant | Die Zelle, nach der mit der Suche begonnen werden soll. Dies entspricht der Position der aktiven Zelle, wenn eine Suche über die Benutzeroberfläche durchgeführt wird. Beachten Sie, dass After eine einzelne Zelle im Bereich sein muss. |
Denken Sie daran, dass die Suche nach dieser Zelle beginnt; die angegebene Zelle wird nicht durchsucht, bis die Methode wieder auf diese Zelle umgebrochen wird. Fall dieses Argument nicht angeben ist, beginnt die Suche nach der Zelle in der oberen linken Ecke des Bereichs. |
Rückgabewert
Bereich
Hinweise
Erreicht die Suche das Ende des angegebenen Suchbereichs, beginnt sie erneut am Anfang dieses Bereichs. Um eine Suche bei einem Umbruch zu beenden, speichern Sie die Adresse der ersten gefundenen Zelle, und testen Sie dann jede nachfolgende gefundene Zelladresse mit dieser gespeicherten Adresse.
Beispiel
In diesem Beispiel werden alle Zellen im Bereich A1:A500 im ersten Arbeitsblatt gesucht, die den Wert 2 enthalten, und der gesamte Zellwert wird in 5 geändert. Das heißt, dass die Werte 1234 und 99299 beide 2 enthalten und beide Zellwerte 5 ergeben.
Sub FindValue()
Dim c As Range
Dim firstAddress As String
With Worksheets(1).Range("A1:A500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing
End If
End With
End Sub
In diesem Beispiel werden alle Zellen in den ersten vier Spalten gesucht, die eine Konstante X enthalten, und die Spalte, die das X enthält, ausgeblendet.
Sub Hide_Columns()
'Excel objects.
Dim m_wbBook As Workbook
Dim m_wsSheet As Worksheet
Dim m_rnCheck As Range
Dim m_rnFind As Range
Dim m_stAddress As String
'Initialize the Excel objects.
Set m_wbBook = ThisWorkbook
Set m_wsSheet = m_wbBook.Worksheets("Sheet1")
'Search the four columns for any constants.
Set m_rnCheck = m_wsSheet.Range("A1:D1").SpecialCells(xlCellTypeConstants)
'Retrieve all columns that contain an X. If there is at least one, begin the DO/WHILE loop.
With m_rnCheck
Set m_rnFind = .Find(What:="X")
If Not m_rnFind Is Nothing Then
m_stAddress = m_rnFind.Address
'Hide the column, and then find the next X.
Do
m_rnFind.EntireColumn.Hidden = True
Set m_rnFind = .FindNext(m_rnFind)
Loop While Not m_rnFind Is Nothing And m_rnFind.Address <> m_stAddress
End If
End With
End Sub
In diesem Beispiel werden alle Zellen in den ersten vier Spalten gesucht, die eine Konstante X enthalten, und die Spalte, die das X enthält, einblenden.
Sub Unhide_Columns()
'Excel objects.
Dim m_wbBook As Workbook
Dim m_wsSheet As Worksheet
Dim m_rnCheck As Range
Dim m_rnFind As Range
Dim m_stAddress As String
'Initialize the Excel objects.
Set m_wbBook = ThisWorkbook
Set m_wsSheet = m_wbBook.Worksheets("Sheet1")
'Search the four columns for any constants.
Set m_rnCheck = m_wsSheet.Range("A1:D1").SpecialCells(xlCellTypeConstants)
'Retrieve all columns that contain X. If there is at least one, begin the DO/WHILE loop.
With m_rnCheck
Set m_rnFind = .Find(What:="X", LookIn:=xlFormulas)
If Not m_rnFind Is Nothing Then
m_stAddress = m_rnFind.Address
'Unhide the column, and then find the next X.
Do
m_rnFind.EntireColumn.Hidden = False
Set m_rnFind = .FindNext(m_rnFind)
Loop While Not m_rnFind Is Nothing And m_rnFind.Address <> m_stAddress
End If
End With
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.