我有一個與我的「簡介」工作表關聯的宏。它由單元格更改觸發,然後調用操作另一個工作表「TimeInLibraryData」的第二個宏。這很簡單:使用Excel 2016,當宏與工作表關聯時,VBA不會激活備用工作表
私人小組Worksheet_Change(BYVAL目標作爲範圍)
Sheets("TimeInLibraryData").Visible = True
Sheets("TimeInLibraryData").Activate
MsgBox "The name of the active sheet is " & ActiveSheet.Name
Call CreateTimeLine.CreateTimeLine1(1)
末次
公用Sub CreateTimeLine1(PickSingleLib長)
Sheets("TimeInLibraryData").Activate
MsgBox "The name of the active sheet is " & ActiveSheet.Name
末次
您可以看到我在輸出活動工作表名稱。問題是,在這兩個地方顯示,我看到ActiveSheet是「簡介」表時,它應該是「TimeInLibraryData」
該應用程序是在Excel 2010中編寫的,我剛更新到Excel 2016,問題是看到。
在Excel 2016中運行,如果我在正常運行時訪問CreateTimeLine1宏,它就會工作。在「簡介」工作表更改後調用宏時,我只會看到一個問題。
我在VBA 2016中創建了一個簡化的例子,發現它按預期工作。我還在Excel 2010中創建了這個簡單的示例,並在Excel 2016中運行了該示例,該示例同樣適用。
所以 - 我有一個非常令人困惑的局面綁在運行寫在Excel/VBA 2010未正確在Excel/VBA用最新的補丁程序的2016
有趣的 - 我已經在調用函數中設置了Application.EnableEvents,但是該設置沒有被傳遞給子。在子中添加它解決了這個問題。謝謝 – Coopermancm