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...