AW: Noch offen
19.08.2003 17:03:47
hermann
hallo john,
hier ein VBA-Code für dein problem.
Voraussetzungen sind zwar in den kommentaren beschrieben.
Aber trotzdem nochmals:
der Code verlangt eine excel-datei in der in Spalte A die pfade/dateinamen der zu aendernden dateien stehen. diese exceldatei erstellst du am leichtesten im Command-(Dos)-modus mit dem dir-befehl, beispiel: dir c:\_temp\*.* /B > c:\dir.xls (achtung: im beispiel entsprechen alle "W" einem Backslash).
Diese Datei musst du dann auswählen wenn das vba-script die eingabedatei verlangt.
Im VBA-Code noch das Replace what und replacement anpassen. Thats it...
gruss
hermann
Der Vba-Code:
Option Explicit
Dim I1 As Integer
Dim LastRow As Integer
Dim FileToOpen
Sub Excel_Ersetzt_Zeichen()
'öffnen excel-datei mit pfad/dateinamen
'voraussetzungen:
' es muss ein Excel-Sheet vorhanden sein mit den Pfad-und Dateinamen der zu bearbeitenden Dokumente
' am besten erstellen im command-mode mit dem dir-befehl und mit zusätzlichem Schalter /B (keine Kopf- und
' Summenzeilen; evtl. schalter /s für subdirectories
'vorgehensweise:
' zuerst wird die auswahl des oben beschriebenen Excel-Files verlangt
' danach wird der Datenstring ersetzt
FileToOpen = Application.GetOpenFilename(Title:="Auswählen Exceldatei mit Pfad/Dateinamen zum Drucken im Word", _
filefilter:="All Files (*.*), *.*")
If FileToOpen <> False Then
Workbooks.Open Filename:= _
FileToOpen
Else
MsgBox prompt:="Keine Eingabedatei ausgewählt", _
Title:="Auswählen Datei für Drucken"
Exit Sub
End If
LastRow = ActiveSheet.UsedRange.Rows.Count
For I1 = 1 To LastRow
If Right(Range("A" & I1).Value, 3) = "xls" Then
Workbooks.Open Filename:=Range("A" & I1)
Cells.Replace What:="test", Replacement:="test1", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
' ActiveWorkbook.Save
ActiveWorkbook.Close True
End If
Next
ActiveWorkbook.Close False
End Sub