Supportnet Computer
Planet of Tech

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

Per VBScript Zeilenumbrüche in Excel-Datei entfernen





Frage

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 1 von dertz

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

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

Antwort 3 von dertz

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

Danke, nun bin ich im Bilde...

Antwort 5 von kusterie

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

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

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