2017-10-13 5 views
0

私は "Introduction"シートに関連付けられたマクロを持っています。セルの変更によってトリガされ、別のワークシート「TimeInLibraryData」を操作する2番目のマクロが呼び出されます。それはかなり簡単です:マクロがワークシートに関連付けられている場合、Excel 2016では、VBAは代替ワークシートをアクティブにしません

ます。Private Sub Worksheet_Change(ByValの対象を範囲)

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)

Sheets("TimeInLibraryData").Activate 

MsgBox "The name of the active sheet is " & ActiveSheet.Name 

End Subの

アクティブシート名を出力しています。問題は両方の場所で、私はActiveSheetが "TimeInLibraryData"であるべきであるときに "Introduction"シートであることがわかります。

アプリケーションはExcel 2010で書かれています。見た。

通常の実行時にCreateTimeLine1マクロにアクセスすると、Excel 2016で実行されますが、動作します。 「Introduction」ワークシートに変更を加えた後、マクロが呼び出されたときにのみ問題が発生します。

私はVBA 2016でカットダウンの例を作成し、期待通りに動作することを確認しました。また、Excel 2010でシンプルなサンプルを作成し、Excel 2016で実行しました。

だから - 私は、最新のパッチを使用してExcel/VBAで正しく2016

答えて

0

私はエクセル2016を使用していますが動作していないエクセル/ VBA 2010年に書かれたマクロの実行中のセットに関連付けられて非常に困惑させるような状況を持っています動作を再現することはできません。 をApplication.EnableEvents = FalseApplication.EnableEvents = Trueの間に挟む必要があります。これにより、他のイベントハンドラがあなたの回線が起動するイベントWorksheet_Activateを捕まえることができなくなります。

+0

興味深い - 私は、呼び出し関数でApplication.EnableEventsを設定しましたが、設定はサブに持ち込まれませんでした。サブに追加することで問題は解決しました。ありがとう – Coopermancm

関連する問題