我有一個使用BeforeSave事件運行代碼的工作簿(「CodeBook.xlsm」)。當用戶打開多個工作簿並通過文件/退出選擇退出Excel時,將提示用戶是否保存工作簿,如果是,則對於CodeBook.xlsm,則運行BeforeSave代碼。問題是,此時ActiveWorkbook可能不是CodeBook.xlsm,除非這恰好是用戶在選擇退出Excel時所處的工作簿。如果用戶從另一個工作簿中退出Excel,則BeforeSave代碼正在運行,但activeworkbook是用戶的一些隨機文件,因此對BeforeSave代碼中特定工作表和範圍的所有引用都不起作用。如何激活非VBA Excel上的特定工作簿退出
我已經嘗試過使用靜態聲明來保留CodeBook和工作簿()的名稱的各種方法。激活以在應用程序退出時激活它,但是當BeforeSave運行時,它無法在任何地方拾取名稱CodeBook,缺乏將代碼硬編碼到代碼中。
有什麼建議嗎?如何在沒有代碼運行時保留內存中的變量名稱,但在用戶啓動退出Excel時存在,或者在Excel退出用戶命令而不是從application.quit時如何激活特定工作簿。使用excel 2010.
VBA被附接到一個特定的工作簿,並且當該工作簿是活性被激活和訪問。假設您有兩個具有相同名稱的函數附屬於同一事件,一個屬於工作簿「A」,另一個屬於工作簿「B」。這合法嗎?當然如此!!!爲了保持一致性,Excel的**當前範圍**是活動工作簿的**範圍。我能想到的唯一解決方案是構建Excel本身的插件,只要打開Excel(帶或不帶文件)就可以訪問該插件。 – FDavidov