我的宏继续在excel中收到编译错误。
我试图在共享工作簿中创建一个宏(我将取消共享工作簿以使用宏)并将其复制到另一个文件(未共享且具有图形的主文件)
Sub Macro()
Dim directory As String, FILEnAME As String, sheet As Worksheet, total As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "C:\Users\bucklej\Desktop"
FILEnAME = Dir(directory & "Copy of AMS Engineering Transitions Database")
Do While FILEnAME <> ""
Loop
Workbooks.Open (directory & FILEnAME)
For Each sheet In Workbooks(FILEnAME).Worksheets
total = Workbooks("Copy of AMS Engineering Transitions Database.xls").Worksheets.Count
Workbooks(FILEnAME).Worksheets(sheet.Name).Copy_
after: Workbooks("Copy of AMS Engineering Transitions Database.xls").Worksheets (total)
Next sheet
Workbooks(FILEnAME).Close
FILEnAME = Dir()
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
最近更新的代码仍然出现编译错误
Sub Macro()
Dim directory As String, FILEnAME As String, sht As Worksht, total As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "C:\Users\bucklej\Desktop\"
FILEnAME = Dir(directory & "Copy of AMS Engineering Transitions Database.xls")
Do While FILEnAME <> ""
Loop
Workbooks.Open (directory & FILEnAME)
For Each sht In Workbooks(FILEnAME).Workshts
total = Workbooks("Copy of AMS Engineering Transitions Database.xls").Workshts.Count
Workbooks(FILEnAME).Workshts(sht.Name).Copy_
after: Workbooks("Copy of AMS Engineering Transitions Database.xls").Worksht (total)
Next sht
Workbooks(FILEnAME).Close
FILEnAME = Dir()
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
答案 0 :(得分:0)
编译。
请注意,After
方法中的Copy
等命名参数必须与After:=...
类似,您忘记了=
。
我还在修改后的代码中注意到您已将.Worksheets
更改为.Workshts
。我不确定你为什么这样做,但是没有像Worksht
这样的成员,所以这也会引起错误。
您需要确保FILENAME
变量具有文件扩展名。你的没有。
从调试菜单中可以随时测试编译项目,它应该有助于确定错误的来源。
Sub Macro()
Dim directory As String, FILENAME As String, sht As Worksheet, total As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
directory = "C:\Users\bucklej\Desktop\"
FILENAME = Dir(directory & "Copy of AMS Engineering Transitions Database.xls")
Do While FILENAME <> ""
Loop
Workbooks.Open (directory & FILENAME)
For Each sht In Workbooks(FILENAME).Worksheets
total = Workbooks("Copy of AMS Engineering Transitions Database.xls").Worksheets.Count
Workbooks(FILENAME).Worksheets(sht.Name).Copy after:=Workbooks("Copy of AMS Engineering Transitions Database.xls").Worksheets(total)
Next sht
Workbooks(FILENAME).Close
FILENAME = Dir()
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
请注意,此循环执行无:
Do While FILENAME <> ""
Loop