Hi,
ich arbeite in MacOs und möchte über ein VBA-Skript mehrere Exceldateien eines Ordners formatieren. Im Ordner sind nur .xlsx Dateien vorhanden.
Wenn das Skript ausgeführt wird, erscheint allerdings immer der Fehler "Laufzeitfehler 1004.: Anwendungs- oder objektorientierter Fehler. Das Loopen funktioniert grundsätzlich, da ich die Formatierung schon mal auskommentiert habe und dann alles habe laufen lassen. Der Part, der formatiert funktionier für sich auch, wenn ich diesen Part als Makro in einer Datei laufen lasse.
Ich weiß einfach nicht, wo das Problem liegt.
Sub LoopThroughFiles()
Dim wbk As Workbook
RootFolder = MacScript("return (path to desktop folder) as String")
If Val(Application.Version) < 15 Then
scriptstr = "(choose folder with prompt ""Select the folder""" & _
" default location alias """ & RootFolder & """) as string"
Else
scriptstr = "return posix path of (choose folder with prompt ""Select the folder""" & _
" default location alias """ & RootFolder & """) as string"
End If
folderPath = MacScript(scriptstr)
On Error GoTo 0
MyFolder = folderPath
MyFile = Dir(MyFolder)
Do While MyFile <> ""
Set wbk = Workbooks.Open(FileName:=MyFolder & MyFile, Password:="change")
Workbooks(MyFile).Activate
Rows("1:1").Select
Selection.RowHeight = 20
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.AutoFilter
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Font.Bold = False
wbk.Close savechanges:=True
MyFile = Dir
Loop
Application.ScreenUpdating = True
End Sub
Vielleicht kann jemand helfen :D
Danke!
|