Funktionreferenz


_Excel_RangeFind

Beschreibung anzeigen in

Findet übereinstimmende Zellen in einem Bereich oder Arbeitsbuch und gibt ein Array mit den Informationen über die gefundenen Zellen zurück

#include <Excel.au3>
_Excel_RangeFind ( $oWorkbook, $sSearch [, $vRange = Default [, $iLookIn = $xlValues [, $iLookAt = $xlPart [, $bMatchcase = False]]]] )

Parameter

$oWorkbook Arbeitsbuch-Objekt
$sSearch Suchtext. Kann ein Text sein (Platzhalter (Wildcards) - *?~ - können genutzt werden) oder ein beliebiger Excel Datentyp. Siehe Remarks.
$vRange [optional] Ein Bereichsobjekt, ein A1 Bereich (Text) oder Schlüsselwort Default um alle Blätter des Arbeitsbuches zu durchsuchen (Standard = Schlüsselwort Default)
$iLookIn [optional] Gibt an, wo zu suchen ist. Kann eine Konstante aus der XLFindLookIn Aufzählung sein (Standard = $xlValues)
$iLookAt [optional] Gibt an, ob der Suchtext vollständig oder nur teilweise übereinstimmen muss. Kann eine Konstante aus der XLLookAt Aufzählung sein (Standard = $xlPart)
$bMatchcase [optional] True = Groß- und Kleinschreibung wird beachtet, False = Groß- und Kleinschreibung wird ignoriert (Standard = False)

Rückgabewert

Erfolg: Ein zwei-dimensionales, 0 basiertes Array mit folgender Information:
    0 - Name des Arbeitsblattes
    1 - Name der Zelle
    2 - Adresse der Zelle
    3 - Inhalt der Zelle
    4 - Formel der Zelle
    5 - Kommentar der Zelle
Fehler: 0 und setzt @error.
@error: 1 - $oWorkbook ist kein Objekt oder kein Arbeitsbuch-Objekt
2 - $sSearch ist leer
3 - $vRange ist falsch. @extended ist auf den COM Fehlercode gesetzt
4 - Fehler zurückgegeben von der Find Methode. @extended ist auf den COM Fehlercode gesetzt

Bemerkungen

Diese Funktion imitiert die CTRL+F Funktionalität von Excel, außer, dass es den Zellenkommentar zum Ergebnis hinzufügt.
Excel erkennt die folgenden Platzhalter (Wildcards):
? (Fragezeichen) - Ein einzelndes Zeichen
* (Sternchen) - Beliebige Anzahl von Zeichen
~ (Tilde) - gefolgt von ?, *, oder ~ - Escaped das Zeichen (Das Zeichen selbst wird gesucht)

Wenn $vRange als A1 Bereich angegeben wird (Text), dann wird das aktive Arbeitsblatt des Arbeitsbuches durchsucht.

Verwandte Funktionen

_Excel_RangeReplace

Siehe auch

Siehe http://office.microsoft.com/en-us/excel-help/wildcard-characters-HP005203612.aspx.

Beispiel

Beispiel 1

#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Finden aller Vorkommen mit dem Wert "37000" (teilweise Übereinstimmung)
Local $aResult = _Excel_RangeFind($oWorkbook, "37000")
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Fehler bei der Suche im Bereich." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 1", "Alle Vorkommen mit dem Wert '37000' finden (teilweise Übereinstimmung)." & @CRLF & "Daten erfolgreich durchsucht.")
_ArrayDisplay($aResult, "Excel UDF: _Excel_RangeFind Example 1", "", 0, "|", "Blatt|Name|Zelle|Wert|Formel|Kommentar")

Beispiel 2

#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Alle Vorkommen der Zeichenfolge "=C10*10" in den Formeln finden, exakte Übereinstimmung
Local $aResult = _Excel_RangeFind($oWorkbook, "=C10*10", "A1:G15", $xlFormulas, $xlWhole)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 2", "Fehler bei der Suche im Bereich." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 2", "Alle Vorkommen der Zeichenfolge '=C10*10' in den Formeln finden, exakte Übereinstimmung." & @CRLF & "Daten erfolgreich durchsucht.")
_ArrayDisplay($aResult, "Excel UDF: _Excel_RangeFind Example 2", "", 0, "|", "Blatt|Name|Zelle|Wert|Formel|Kommentar")

Beispiel 3

#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Alle Vorkommen der Zeichenfolge "test" in den Kommentaren finden
Local $aResult = _Excel_RangeFind($oWorkbook, "test", Default, $xlComments)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 3", "Fehler bei der Suche im Bereich." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 3", "Alle Vorkommen der Zeichenkette 'test' in den Kommentaren finden." & @CRLF & "Daten erfolgreich durchsucht.")
_ArrayDisplay($aResult, "Excel UDF: _Excel_RangeFind Example 3", "", 0, "|", "Blatt|Name|Zelle|Wert|Formel|Kommentar")

Beispiel 4

#include <Array.au3>
#include <Excel.au3>
#include <MsgBoxConstants.au3>

; Anwendungsobjekt erstellen und eine Beispielarbeitsmappe öffnen
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Fehler beim Erstellen des Excel-Anwendungsobjekts." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $oWorkbook = _Excel_BookOpen($oExcel, @ScriptDir & "\Extras\_Excel1.xls")
If @error Then
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example", "Fehler beim Öffnen der Arbeitsmappe '" & @ScriptDir & "\Extras\_Excel1.xls'." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    _Excel_Close($oExcel)
    Exit
EndIf

; Finden aller Werte mit "Story" am Ende unter Verwendung von Platzhaltern und exakter Übereinstimmung
Local $aResult = _Excel_RangeFind($oWorkbook, "* Story", Default, Default, $xlWhole)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 4", "Fehler bei der Suche im Bereich." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeFind Example 4", "Finden aller Werte mit 'Story' am Ende unter Verwendung von Platzhaltern und exakter Übereinstimmung." & @CRLF & "Daten erfolgreich durchsucht.")
_ArrayDisplay($aResult, "Excel UDF: _Excel_RangeFind Example 4", "", 0, "|", "Blatt|Name|Zelle|Wert|Formel|Kommentar")