[英]How can I delete macros from a single file from a Excel sheet?
范圍:
我和我的團隊正在使用VBA為我們的客戶開發Excel報告。 此.xlms文件中有函數和宏,我不想讓客戶使用。
我們設法使用此代碼示例刪除工作簿中的所有宏:
private void DeleteMacros (string reportPath)
{
// WorkBookManager is our own Wrapper for the Excel Workbook class
WorkbookManager wb = new WorkbookManager (reportPath);
wb.OpenWorkbook (false);
//Lock workbook
wb.RunMacro("ThisWorkbook.LockWorkbook");
//Deleting the Macros from the workbook
VBProject project = wb.GetInstance().VBProject;
for (int i = project.VBComponents.Count; i >= 1; i--)
{
VBComponent component = project.VBComponents.Item(i);
try
{
project.VBComponents.Remove(component);
}
catch (ArgumentException)
{
continue;
}
}
for (int i = project.VBComponents.Count; i >= 1; i--)
{
VBComponent component = project.VBComponents.Item(i);
component.CodeModule.DeleteLines(1, component.CodeModule.CountOfLines);
}
wb.CloseAndSave();
wb.CleanUp();
}
問題:
我們仍然需要這個工作簿中的一些宏,比如用於從一個工作表導航到另一個工作表的宏,我們綁定到按鈕(以避免在報告的底部顯示工作表標簽)。
題:
有沒有什么辦法可以將那些不重要(/敏感)的宏封裝在單個工作簿的單個文件中,並以某種方式刪除所有其他工作簿及其宏?
如果沒有,這是正確的方法嗎?
在刪除之前,您是否嘗試檢查每個組件的屬性(如Name
)? 只是不要刪除你想要保留的那些。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.