
目前,在 Excel 2010 中,當我嘗試將建立的工作簿儲存為 .xlsx 檔案但新增了 VBA 函數或子程式時,Excel 會提示(以迂迴的方式)詢問我是否要變更它至.xlsm 檔案。如果這個問題的預設答案是“是的,我不想刪除我在處理此文件時所做的所有程式設計工作,因為我保存了”,這對我來說不是問題,但您需要主動單擊或切換到「否」按鈕,否則它會另存為.xlsx 文件,並且您會丟失所有模組。
這是我遇到的唯一一種預設選項是刪除資料而不是保存資料的情況。我知道我丟失了一些工作主要是我的錯,我應該更加小心,但我真的很想知道我是否可以禁用此訊息或以某種方式更改預設值。
答案1
你能但這很混亂而且危險。
- 允許 VBA 讀取/寫入 VBA(檔案 > 選項 > 信任中心 > 信任中心設定 > 巨集設定 > 信任對 VBA 專案物件模型的存取)
- 建立個人巨集工作簿(如果您還沒有)
- 在
ThisWorkbook
個人巨集工作簿的物件中,使用事件將+Workbook_Open
對應到其他某個巨集。 (會是這樣的)CtrlSApplication.OnKey "^s", "saveAsMacroIfMacrosExist"
- 使用該
Workbook_BeforeClose
事件再次關閉 (Application.OnKey "^s"
) - 將該子程式(而非函數)寫入個人巨集工作簿的模組中。 (這是留給讀者的練習,但我找到了一個片段這裡我沒有測試,但應該測試工作簿中是否有巨集。
- 使用Ctrl+S來儲存文件,而不是使用工具列或“文件”>“儲存”。
重點:這要求您永久允許存取 VBA 專案物件模型,這通常是一個壞主意。