Excel Datei durchsuchen
Guten Morgen zusammen,
ich hab ein kleines Proble mit Excel und VBS. Ich versuche eine Excel Datei nach einem Benutzernamen zu durchsuchen, dann soll er mir, wenn er diesen gefunden hat, in der gleichen Zeile, in der zweiten Spalten den passenden Eintrag in eine Variable schreiben. Leider klappts nicht, er wirft mir immer nur den Wert in der falschen Zeile aus. Eine Idee? Danke Euch schon mal...Hier ist mein Code:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(filename)
Username = "ExZivi"
intRow = 2
objExcel.Cells(intRow,1).Value = "&username&"
Wscript.Echo "Zertifikat: " & objExcel.Cells(intRow, 2).Value
intRow = intRow + 1
objWorkbook.Close False
objExcel.Quit
ich hab ein kleines Proble mit Excel und VBS. Ich versuche eine Excel Datei nach einem Benutzernamen zu durchsuchen, dann soll er mir, wenn er diesen gefunden hat, in der gleichen Zeile, in der zweiten Spalten den passenden Eintrag in eine Variable schreiben. Leider klappts nicht, er wirft mir immer nur den Wert in der falschen Zeile aus. Eine Idee? Danke Euch schon mal...Hier ist mein Code:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(filename)
Username = "ExZivi"
intRow = 2
objExcel.Cells(intRow,1).Value = "&username&"
Wscript.Echo "Zertifikat: " & objExcel.Cells(intRow, 2).Value
intRow = intRow + 1
objWorkbook.Close False
objExcel.Quit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82684
Url: https://administrator.de/forum/excel-datei-durchsuchen-82684.html
Ausgedruckt am: 20.05.2025 um 15:05 Uhr
5 Kommentare
Neuester Kommentar
Hallo exzivi und willkommen im Forum!
Das müsste eher so aussehen:
Durch die "For"-Schleife (oder ein alternatives Konstrukt mit "Loop") erreichst Du, dass nur bis maximal Zeile 65536 gesucht wird.
"LCase()" sorgt dafür, dass die Groß-/Kleinschreibung beim Vergleich der Benutzernamen keine Rolle spielt.
"Exit For" bewirkt schließlich, dass die Schleife sofort verlassen wird, nachdem der Benutzername gefunden werden konnte.
Grüße
bastla
[Edit] Schleifenvariable i an den nötigen Stellen eingesetzt. [/Edit]
Das müsste eher so aussehen:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(filename)
Username = "ExZivi"
intRow = 2
For i = intRow To 65536
If LCase(objExcel.Cells(i,1).Value) = LCase(Username) Then
WScript.Echo "Zertifikat: " & objExcel.Cells(i, 2).Value
Exit For
End If
Next
objWorkbook.Close False
objExcel.Quit
Durch die "For"-Schleife (oder ein alternatives Konstrukt mit "Loop") erreichst Du, dass nur bis maximal Zeile 65536 gesucht wird.
"LCase()" sorgt dafür, dass die Groß-/Kleinschreibung beim Vergleich der Benutzernamen keine Rolle spielt.
"Exit For" bewirkt schließlich, dass die Schleife sofort verlassen wird, nachdem der Benutzername gefunden werden konnte.
Grüße
bastla
[Edit] Schleifenvariable i an den nötigen Stellen eingesetzt. [/Edit]
Hallo ExZivi,
auch ein Willkommen von mir
Was bastla geschrieben hat:
Also innerhalb des If´s in der For-Schleife. Das intRow müsste dann durch i ersetzt werden.
Was, wie ich gerade sehe, natürlich auch in der If Bedingung ausgetauscht werden müsste
BG, Felix -misterdemeanor-
auch ein Willkommen von mir
Was bastla geschrieben hat:
WScript.Echo "Zertifikat: " & objExcel.Cells(intRow, 2).Value
Also innerhalb des If´s in der For-Schleife. Das intRow müsste dann durch i ersetzt werden.
Was, wie ich gerade sehe, natürlich auch in der If Bedingung ausgetauscht werden müsste
BG, Felix -misterdemeanor-
@exzivi
Sorry - trotz einer Menge Text war's leider gerade so zwischen Tür und Angel (noch nicht einmal "ungetestet" habe ich dazugeschrieben, fällt mir gerade auf *kopfschüttel*) - ich korrigiere das dann mal besser da oben ...
@misterdemeanor
Danke für's Aufräumen.
Grüße
bastla
Sorry - trotz einer Menge Text war's leider gerade so zwischen Tür und Angel (noch nicht einmal "ungetestet" habe ich dazugeschrieben, fällt mir gerade auf *kopfschüttel*) - ich korrigiere das dann mal besser da oben ...
@misterdemeanor
Danke für's Aufräumen.
Grüße
bastla