我有一个非常简单的VBA代码来复制单元格的值,打开另一个工作簿,并将该单元格值粘贴到新打开的工作簿中。它在普通模块中完美运行。但是当我在ThisWorkbook模块中运行代码时,为了在保存文件时触发它,其他工作簿将无法打开。但是,在ThisWorkbook中打开MsgBox的更简单的宏工作正常。另一个奇怪的事情是,如果我正在查看代码,代码将在ThisWorkbook中工作。任何人都知道为什么会发生这种情况?我正在运行Excel 2010.
代码如下:
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim rangetocopy As String
Dim w1 As Workbook
Dim w2 As Workbook
Set w1 = ActiveWorkbook
Calculate
rangetocopy = w1.Sheets("Reference Data").Range("F10").Value
Set w2 = Workbooks.Open("C:\Users\user1\Documents\To-Do.xlsm")
w2.Worksheets("Masterlist").Activate
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.Value = rangetocopy
w1.Worksheets("To-do List").Activate
End Sub
有什么想法吗?
答案 0 :(得分:0)
问题是由名为WorkSite的第三方加载项引起的。一旦我断开连接,宏工作正常。