Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1008to1012
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Code an VBS anpassen

VBA-Code an VBS anpassen
10.09.2008 10:41:00
Wladimir
Hallo zusammen,
ich habe mir die Funktion Suchen und Ersetzen mit Makro-Recorder aufgenommen und versuchte erhaltenen Code:

Sub ersetzen()
Cells.Replace What:="09.08", Replacement:="10.08", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub


An VBS anzupassen.
Code:
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("c:\test.xls")
objExcel.visible = False
ObjExcel.DisplayAlerts = False
With objExcel
.WorkSheets("Tabelle1").Cells.Replace
.What="09.08"
.Replacement="10.08"
.LookAt=xlPart
.SearchOrder=xlByRows
.MatchCase=False
.SearchFormat=False
.ReplaceFormat=False
End With
objWorkbook.Save
objWorkbook.Quit
Set objExcel = Nothing
Aber wenn dieser Code als .vbs gespeichert wird, kommt folgende Fehlermeldung:
Zeile: 8 Zeichen: 1
Fehler: falsche Anzahl an Argumenten oder ungültige Eigenschaftszuweisung: 'Worksheets(…).Cells.Replace'
Code: 800A01C2
Was mache ich falsch?
Danke im Voraus
Freundliche Grüße
Wladimir

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code an VBS anpassen
10.09.2008 11:01:00
Erich
Hallo Wladimir,
die Excel-Konstanten xlPart und xlByRows sind in VBScript nicht bekannt.
Du kannst sie durch Zahlenwerte ersetzen.
(Kannst du im Objektkatalog finden, oder in VBA mit Msgbox xlpart)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: VBA-Code an VBS anpassen
10.09.2008 11:50:00
Wladimir
Hallo Erich,
vielen Dank für Deinen Tipp. Ich habe statt XlPart - 2 und ByRows - 1 geschrieben, aber leidder derselbe Fehler kommt immer noch, zwar es dauert etwas länger. Ich habe versucht, gleich alle andere Parameter zu prüfen, aber nichts passendes gefunden.
Freundliche grüße
Wladimir
AW: VBA-Code an VBS anpassen
10.09.2008 12:50:00
Erich
Hallo Wladimir,
da war noch einiges mehr im Argen.
Der Code
With objExcel
.WorkSheets("Tabelle1").Cells.Replace
.What="09.08"
End With

ist wenig sinnvoll. Was könnte/sollte objExcel.What sein?
objWorkbook.Quit gibt es nicht. Für Workbooks gibts Close, für Applications gibts Quit.
Eine Empfehlung:
Solche Skripte besser erst mal innerhalb von VBA testen, in diesem Fall

Option Explicit
Sub tst()
Dim objExcel As Object, objWorkbook As Object
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts = False
Set objWorkbook = objExcel.Workbooks.Open("c:\test.xls")
objWorkbook.Worksheets("Tabelle1").Cells.Replace What:="09.08", _
Replacement:="10.08", LookAt:=2, SearchOrder:=1, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
'objWorkbook.Save
'objWorkbook.Quit  ' gibt es nicht
objWorkbook.Close True
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
End Sub


Und hier als VBS:


Dim objExcel, objWorkbook
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts = False
Set objWorkbook = objExcel.Workbooks.Open("c:\test.xls")
objWorkbook.Worksheets("Tabelle1").Cells.Replace _
"09.08", "10.08", 2, 1, False, False, False
objWorkbook.Close True
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: VBA-Code an VBS anpassen
10.09.2008 13:27:49
Wladimir
Hallo Erich,
vielen Dank für Deine Tipps. In Zukunft versuche ich, wie Du es empfohlen hast, zunächst in VBA einen Code zu schreiben.
Dein Code funktioniert wunderbar.
Ich habe erst mit VBS angefangen.
Nochmals vielen Dank
Freundliche Grüße
Wladimir

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige