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)
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?
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...?
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 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?
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/
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...

