插入电子表格宏 - 在 2010 年有效,但在 2016 年无效

Insert Spreadsheet Macro - Works in 2010 but not 2016

我有一个 VBA 宏,它可以将摘要选项卡从一个工作簿复制到另一个工作簿。它在 2010 年运行良好,但不适用于我们从 2010 年升级到 2016 年的同事。宏不会出错 - 它根本不执行任何操作。有没有人对 2016 年可能有什么不同有什么建议?谢谢!

Sub Analyst_Summary_macro()

ActiveWorkbook.Save

Dim MyPath As String, MyCompletePath As String
MyCompletePath = ActiveWorkbook.FullName

Dim wkbSource As Workbook
Dim wkbDest As Workbook
Dim shtToCopy As Worksheet

Set wkbSource = Workbooks.Open("C:\Users\n0079864\Desktop\Analyst_Summary.xlsx")
Set shtToCopy = wkbSource.Sheets("Analyst_Summary")

Set wkbDest = Workbooks.Open(MyCompletePath)
shtToCopy.Copy wkbDest.Sheets(1)

Workbooks("Analyst_Summary.xlsx").Close False
    Application.ScreenUpdating = False

End Sub

你是复制到有代码的工作簿,还是其他工作簿?

使用 ActiveWorkbook.FullName 打开另一个工作簿似乎很奇怪,并且可能会导致问题。

尝试以下更改:

Sub Analyst_Summary_macro()

    Dim wkbDest As Workbook
    Set wkbDest = ActiveWorkbook 'or ThisWorkbook?
    wkbDest.Save

    With Workbooks.Open("C:\Users\n0079864\Desktop\Analyst_Summary.xlsx")
        .Sheets("Analyst_Summary").Copy wkbDest.Sheets(1)
        .Close False
    End with

End Sub