簡體   English   中英

如何從Excel工作表中刪除單個文件中的宏?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM