autogen
Goto Top

VBscript, Excel und Find-Methode

Hallo zusammen,

ich stehe zurzeit auf'm Schlauch, komme nicht weiter und hoffe auf Eure Unterstützung.
Mittels VBScript (und nicht anders) soll in der Spalte A einer Excel-Tabelle nach einem bestimmten Wert, der 100% übereinstimmen muss, gesucht werden.
Die Zeile 40 funktioniert fehlerfrei, gibt aber auch Zellen zurück, die die gesuchte Zeichenfolge innerhalb einer anderen Zeichenfolge findet.
Beispiel:
Gesucht: AAA
Gefunden: AAA, CAAA, ABAAAC, etc.

In Verbindung mit "LookAt:=xlWhole" (Zeile 43) soll nur die Zelle zurückgegeben werden, die 100% mit dem gesuchten Wert übereinstimmt.
Beispiel:
Gesucht: AAA
Gefunden: AAA
Leider generiert die Zeile 43 aber folgender Fehler:
"Kompilierungsfehler in Microsoft VBScript: ')' erwartet"

Meine Umgebung:
MS Office 2003, 2010, 2013 mit allen Patchen und Service Packs
Windows XP Prof., Windows XP ebenfalls mit allen Patchen und Service Packs.


Option Explicit
'On Error Resume Next  

Dim oWorkbook, oExcel, oSheet, arWerte, inti

Set oExcel 	= CreateObject("Excel.Application")  
Set oWorkbook 	= oExcel.Workbooks.Add()
Set oSheet	= oWorkbook.Sheets(1)

oSheet.activate
oExcel.Visible = True

'etwas Input für die Tabelle  
oSheet.Cells(1, 1).Value = "AAAC"  
oSheet.Cells(2, 1).Value = "BBB"  
oSheet.Cells(3, 1).Value = "AAA"  
oSheet.Cells(4, 1).Value = "DDD"  

'Array mit Suchwerten, die in der Tabelle gesucht werden:  
arWerte = Array("YYY","AAA")  

'In der Schleife ein Aufruf der Suchfunktion für jeden Wert im Array  
FOR inti = 0 To UBound(arWerte)
	fWertSuchen(arWerte(inti))
NEXT

Function fWertSuchen(strWert)
'On Error Resume Next  
Err.Clear

Dim oWertGefunden

CONST xlUp 		= -4162
CONST xlValues 		= -4163
CONST xlWhole 		= 1
CONST xlByRows  	= 1
CONST xlByColumns 	= 2

'Diese Zeile funktioniert einwandfrei, erlaubt aber keine genaue Suche nach Werten:  
'Set oWertGefunden = oSheet.Columns(1).Find(strWert)  

'Diese Zeile bringt folgenden Fehler: Kompilierungsfehler in Microsoft VBScript: ')' erwartet  
Set oWertGefunden = oSheet.Columns(1).Find(strWert,lookin:=xlValues,LookAt:=xlWhole)

IF oWertGefunden Is Nothing Then
	fWertSuchen = FALSE
	wscript.echo "       - " & strWert  
ELSE
	fWertSuchen = TRUE
	wscript.echo "+ " & strWert  
END IF

End Function

Ich hoffe, dass einer von Euch den Fehler identifizieren kann, weil ich wahrscheinlich schon irgendwie Betriebsblind bin...

Merci.

Gruß,
autogen

Content-Key: 206871

Url: https://administrator.de/contentid/206871

Printed on: April 19, 2024 at 14:04 o'clock

Member: bastla
bastla May 22, 2013 updated at 21:10:13 (UTC)
Goto Top
Hallo autogen und willkommen im Forum!

VBS mag die benannten VBA-Argumente nicht, daher eher so:
Set oWertGefunden = oSheet.Columns(1).Find(strWert, , xlValues, xlWhole)
Grüße
bastla
Member: autogen
autogen May 23, 2013 at 05:42:49 (UTC)
Goto Top
Hallo bastla,

vielen Dank für die Begrüßung und den Stubs auf den Hinterkopf. face-smile
Ohne der benannten VBA-Argumente funktioniert das Script natürlich fehlerfrei.

Gruß,
autogen