【发布时间】:2018-03-26 02:28:34
【问题描述】:
我有一个与我的“简介”表相关联的宏。它由单元格更改触发,然后调用第二个宏来操作另一个工作表“TimeInLibraryData”。很简单:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("TimeInLibraryData").Visible = True
Sheets("TimeInLibraryData").Activate
MsgBox "The name of the active sheet is " & ActiveSheet.Name
Call CreateTimeLine.CreateTimeLine1(1)
End Sub
Public Sub CreateTimeLine1(PickSingleLib As Long)
Sheets("TimeInLibraryData").Activate
MsgBox "The name of the active sheet is " & ActiveSheet.Name
End Sub
您可以看到我正在输出活动工作表名称。问题是,在显示的两个地方,我看到 ActiveSheet 是“介绍”表,而它应该是“TimeInLibraryData”
应用程序是用 Excel 2010 编写的,我刚刚更新到出现问题的 Excel 2016。
在 Excel 2016 中运行,如果我在正常运行时访问 CreateTimeLine1 宏,它可以工作。我只在“介绍”工作表更改后调用宏时才看到问题。
我在 VBA 2016 中创建了一个精简示例,发现它可以按预期工作。我还在 Excel 2010 中创建了一个简单的示例,并在 Excel 2016 中运行它,它也可以工作。
所以 - 我遇到了一个非常令人困惑的情况,即运行一组用 Excel/VBA 2010 编写的宏在 Excel/VBA 2016 中无法正常工作
【问题讨论】: