Hi Leute. Ich möchte die 1 Zelle von Excel (csv) dateien löschen. Da es sich um viele Dateien handelt, würde es gerne automatisieren. Mit Batch Datei möglich?

... komplette Frage anzeigen

2 Antworten

Das mit den Übergabeparametern von Workbooks.Open war etwas tricky, aber wenn du folgenden Code als abc.vbs abspeicherst und die CSV-Dateien, deren erste Zelle geleert werden soll, auf abc.vbs ziehst, sollte es klappen.

' Löscht die Zellen A1 der übergebenen CSV-Dateien

Option Explicit
Call A1loeschen()
Sub A1loeschen() Dim oExcel Dim oWorkbook Dim sExceldatei
Set oExcel = CreateObject("Excel.Application") oExcel.DisplayAlerts = false
for each sExceldatei in WScript.Arguments Set oWorkbook = oExcel.WorkBooks.Open(sExceldatei, , , , , , , , , , , , , True) oWorkbook.Sheets(1).Cells(1,1).Value = "xx" oWorkbook.SaveAs sExceldatei oWorkbook.Saved = True oWorkbook.Close next
oExcel.Quit oExcel.DisplayAlerts = true
Set oExcel = Nothing Set oWorkbook = Nothing
MsgBox "Fertig" End Sub
Antwort bewerten Vielen Dank für Deine Bewertung
FOR /F "delims=" %F IN ('dir /B "P:\\fad\\Ordner\\*.csv"') DO @(
  @FOR /F "tokens=1,* delims=;" %A IN (%~fsF) DO @echo ;%B>>"%~fF.tmp"
  @move "%~fF.tmp" "%~fF"
)

Brauchst du keine Batchdatei für, kannst du direkt in CMD eingeben. Für jede .CSV-Datei in dem Ordner "P:\\fad\\Ordner" wird die erste Spalte gelöscht. Der Inhalt der neuen Datei wird ein eine .TMP-Datei geschrieben, die am Ende auf die Ursprungsdatei geschoben wird.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?