我一直在用我的宏接收Excel中的编译错误

时间:2014-08-26 14:34:35

标签: excel vba excel-vba

我的宏继续在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

1 个答案:

答案 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