代码适用于Excel模块,但不适用于ThisWorkbook模块。

时间:2016-08-25 16:57:53

标签: excel vba excel-vba excel-2010

我有一个非常简单的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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

问题是由名为WorkSite的第三方加载项引起的。一旦我断开连接,宏工作正常。