Hallo,
folgenden Code habe ich geschrieben. Er funktioniert und läuft folgendermaßen ab:
- Öffne alle Excel-Dateien in einem Zielordner nacheinander
- Schau bei jeder Excel-Datei den genutzten Bereich durch
- Formatiere "Date" um und Formatiere "Time" um (sodass die Schreibweise dieselbe bleibt, es jedoch als Text formatiert ist)
- Speichere die Excel und gehe zur nächsten
Private Sub TEST()
Dim Source As String
Dim StrFile As String
'do not forget last backslash in source directory.
Source = "C:\Users\xxx\"
StrFile = Dir(Source)
Do While Len(StrFile) > 0
Workbooks.Open Filename:=Source & StrFile
Dim A As Excel.Range
Dim B As Boolean
For Each A In ActiveCell.CurrentRegion.Cells
' Suche nach Datum (Format: Date)
If IsDate(A) Then
A.Value = "'" & Replace(Format(A, "YYYY/MM/DD"), "/", "")
A.NumberFormat = "@"
End If
'Suche Nach Uhrzeit (Format: Time)
If CBool((A.Text Like "??:??:??") * (A.Value < 1)) = True Then
A.Value = "'" & Replace(Format(A, "hh:nn:ss"), ":", "")
A.NumberFormat = "@"
End If
Next
Workbooks(StrFile).Close SaveChanges:=True
StrFile = Dir()
Loop
End Sub
Der Code funtioniert wunderbar, jedoch ist er nicht so performant und benötigt relativ lange. Hat jemand eine bessere Idee bzw. Verbesserungsvorschläge um die Geschwindigkeit zu erhöhen?
VG
Tom
|