online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon kusti vom 06.03.2019, 11:27 Options

Per VBScript Zeilenumbrüche in Excel-Datei entfernen

Hallo,

ich möchte gern über ein VBScript eine Excel-Datei öffnen, alle Zeilenumbrüche entfernen, speichern und wieder schließen.
Ich bekomme aber immer den Kompilierungsfehler:
Zeile 19 Anweisungsende erwartet (Zeile NextcolIndex)

Hat mir jemand einen Tipp? Geht das überhaupt so?


Dim objXL
Set objXL = WScript.CreateObject("Excel.Application")
objXL.visible=true
objXL.Workbooks.open "C:\test.xls"

Sub Entfernen()
MaxRows = Cells.SpecialCells(xlLastCell).Row
MaxCols = Cells.SpecialCells(xlLastCell).Column
For rwIndex = 1 To MaxRows
For colIndex = 1 To MaxCols
With Cells(rwIndex, colIndex)
ofs = InStr(.Value, Chr(10))
While ofs > 0
.Value = Left(.Value, ofs - 1) & " " & Right(.Value, Len(.Value) - ofs)
ofs = InStr(.Value, Chr(10))
Wend
End With
Next colIndex
Next rwIndex
End Sub

objXl.ActiveWorkbook.Save
objXl.quit


Antwort schreiben

Antwort 1 von dertz vom 06.03.2019, 11:51 Options

Zitat:
Ich bekomme aber immer den Kompilierungsfehler:
Zeile 19 Anweisungsende erwartet (Zeile NextcolIndex)

Syntaxfehler! Bei For .. Next darf hinter Next nichts stehen. Nur bei For Each .. Next kann da die Schleifenvariable angegeben werden.

Zitat:
Geht das überhaupt so?

Kann ich nichts zu sagen. Wenn es keine wichtigen Gründe für VBSkript gibt, würde ich VBA vorziehen. Excel über VBS anzusprechen führt gerne zu seltsamen Problemen (nur meine persönliche Erfahrung, vielleicht liegts aber auch an mir).

Antwort 2 von kusti vom 06.03.2019, 11:58 Options

Vielen Dank.
Das komische ist nur, dass es funktioniert, wenn ich die Funktion als Makro ausführe...?

Antwort 3 von dertz vom 06.03.2019, 12:08 Options

Zitat:
Das komische ist nur, dass es funktioniert, wenn ich die Funktion als Makro ausführe...?

Das ist nur komisch, wenn man denkt, dass die Syntax von VBS und VBA identisch sein muss. Wenn Du in die Dokumentationen der beiden Sprachen schaust, siehst Du aber, dass das nicht so ist. VBA kennt die Angabe der Zählervariable hinter Next bei For .. Next, VBS nicht.

Antwort 4 von kusti vom 06.03.2019, 13:05 Options

Danke, nun bin ich im Bilde...

Antwort 5 von kusterie vom 06.03.2019, 14:13 Options

Jetzt bin ich es noch mal...
Aber ich schaffe es einfach nicht, das Skript vb-syntaktisch richtig zu stellen.

Ich weiß, dass es nicht üblich ist, nach den fertigen Code zu fragen. Aber vieleicht kann sich jemand erbarmen?

Antwort 6 von dertz vom 06.03.2019, 15:40 Options

es sind zwar keine syntaxfehler, aber was du falsch machst ist, dass du methoden wie Cells einfach so benutzt wie unter vba. dort sind sie automatisch definiert, weil sie in excel ablaufen. in vbs sind sie das aber nicht. du musst vbs mitteilen, das du eine excel-methode benutzt, indem du Cells an das geöffnete excel-object knüpfst, sonst weiss vbs nicht, wovon du redest..
vielleicht helfen dir diese beispiele weiter:
http://www.activexperts.com/activmonitor/windowsmanagement/scripts/msoffice/excel/

Antwort 7 von kusterie vom 06.03.2019, 17:00 Options

Das hast du gut erklärt. Ich schaue mal, wie ich da weiterkomme...

Ähnliche Themen

Textdatei mit Zeilenumbrüchen in Excel importieren
187jackie  07.04.2007 - 138 Hits -

Seitenumbrüche in Excel-sheet einfügen per VBA
snailhouse  06.08.2007 - 48 Hits - 5 Antworten

java bluej Zeilenumbrüche in Strings
.Fenris  29.05.2008 - 135 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026