Suche nach allen (Microsoft Excel)
Jack fragt sich, wie er nach einem bestimmten Wort oder einer bestimmten Phrase suchen und in einem Schritt alle Zellen hervorheben kann, die es enthalten, damit er sie ausschneiden oder kopieren und an anderer Stelle einfügen kann.
Die Auswahl der Zellen mit dem gewünschten Text ist recht einfach. Sie können dazu die Standardfunktion Suchen und Ersetzen verwenden. Befolgen Sie diese Schritte:
-
Drücken Sie Strg + F. Excel zeigt die Registerkarte Suchen des Dialogfelds Suchen und Ersetzen an.
-
Erweitern Sie das Dialogfeld, indem Sie auf die Schaltfläche Optionen klicken. (Siehe Abbildung 1.)
-
Geben Sie im Feld Suchen nach den Text ein, den Sie suchen möchten.
-
Verwenden Sie die Steuerelemente im Dialogfeld, um die Übereinstimmungen nach Bedarf einzuschränken.
-
Klicken Sie auf Alle finden. Das Dialogfeld wird erweitert, um alle gefundenen Übereinstimmungen anzuzeigen.
-
Drücken Sie Strg + A. Dies wählt alle gefundenen Zellen aus.
-
Klicken Sie auf Schließen, um das Dialogfeld zu schließen.
Das ist es. Solange Sie in Schritt 4 nicht auf Gesamten Zelleninhalt abgleichen geklickt haben, wählt Excel alle Zellen aus, die den in Schritt 3 angegebenen Text enthalten. Zu diesem Zeitpunkt können Sie bei Bedarf die Formatierung auf die Zellen anwenden.
Sie können natürlich die bedingte Formatierung verwenden, um Zellen dynamisch zu formatieren, die den Text enthalten, den Sie hervorheben möchten. Sie müssen lediglich eine Bedingung einrichten, die eine Formel verwendet, die das Vorhandensein des gewünschten Textes prüft. Dadurch werden natürlich nicht alle Zellen ausgewählt, die den Text enthalten, aber sie werden hervorgehoben, damit Sie herausfinden können, wo sie sich befinden.
Sie können auch ein Makro verwenden, um alle Zellen auszuwählen, die den gewünschten Text enthalten. Das Folgende ist ziemlich einfach und erfüllt die Aufgabe:
Sub selCellbasedonValue() Dim c As Object Dim u As Range Dim v As Range Dim sInpt As String Set u = ActiveSheet.UsedRange sInpt = InputBox("Enter the search text") If sInpt > "" Then For Each c In u If Instr(LCase(sInpt),LCase(c.Value)) > 0 Then If v Is Nothing Then Set v = Range(c.Address) Else Set v = Union(v, Range(c.Address)) End If End If Next v.Select Set v = Nothing End If Set u = Nothing End Sub
Es gibt jedoch ein Problem bei der Auswahl von Zellen, die Sie erkennen müssen. Wenn die Zellen nicht zusammenhängend sind, können Sie die Zellen nicht ausschneiden oder kopieren. Wenn Sie es versuchen, wird eine Fehlermeldung angezeigt, die angibt, dass der Befehl nicht für mehrere Auswahlen verwendet werden kann. Der einfachste Weg, Zelleninhalte an einen anderen Ort zu kopieren, ist die Verwendung eines Makros:
Sub CopyFinds() Dim sSrch As String Dim sFirst As String Dim rPaste As Range Dim i As Integer Dim iLeftC As Integer Dim lTopR As Long Dim c As Object If Selection.Cells.Count = 1 Then MsgBox "Select the range to be searched." Exit Sub End If 'Specify search string sSrch = InputBox(Prompt:="Enter the search text") ' Set the paste address On Error Resume Next Set rPaste = Application.InputBox(Prompt:="Enter the upper-left " & _ "cell address for the paste range", Type:=8) On Error GoTo 0 ' Exit if canceled If TypeName(rPaste) <> "Range" Then Exit Sub ' Upper left cell to be used Set rPaste = rPaste.Range("A1") 'Set where paste will start and headings Application.ScreenUpdating = False lTopR = rPaste.Row iLeftC = rPaste.Column Cells(lTopR, iLeftC) = "Address" Cells(lTopR, iLeftC + 1) = "Cell Value" lTopR = lTopR + 1 'Start copying cell values With Selection Set c = .Find(What:=sSrch, LookAt:=xlPart, MatchCase:=True) If Not c Is Nothing Then sFirst = c.Address Do Cells(lTopR, iLeftC) = c.Address Cells(lTopR, iLeftC + 1) = c.Value Set c = .FindNext(c) lTopR = lTopR + 1 Loop While Not c Is Nothing And c.Address <> sFirst End If End With Application.ScreenUpdating = True Cells(rPaste.Row, rPaste.Column).Select End Sub
Wenn Sie einen Zellbereich auswählen und dieses Makro ausführen, werden Sie aufgefordert, anzugeben, wonach Sie suchen (Groß- / Kleinschreibung ist wichtig) und eine Adresse anzugeben, an die Sie es kopieren möchten. Das Makro findet dann alle Zellen, die diesen Wert enthalten, und kopiert sowohl ihre Adresse als auch den Zellenwert an die von Ihnen angegebene Startadresse. Das Makro führt nicht viele Fehlerprüfungen durch. Informationen werden überschrieben, wenn Sie eine Zieladresse angeben, die bereits Informationen enthält. Wenn Sie eine Zieladresse angeben, die innerhalb des gesuchten Bereichs liegt, wird das Makro möglicherweise unendlich ausgeführt. Sie sollten auf jeden Fall ein Ziel angeben, das außerhalb des gesuchten Bereichs liegt.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (8963) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: