簡體   English   中英

有沒有辦法以編程方式從很多excel工作表中刪除所有vba模塊

[英]Is there a way to programmatically remove all vba module from a lot of excel worksheets

我的文件夾中有很多excel文件(.xls),每個文件中都有一個vba宏/模塊,我需要將其刪除。 我可以編寫一個遍歷該文件夾,檢查每個Excel文件並刪除vba模塊的外部程序嗎? 請告訴我哪種編程語言最容易做到。 謝謝!

通過手動過程,我必須1)打開工作表,2)單擊“啟用內容”,3)轉到“開發人員”選項卡,4)單擊“ Visual Basic”按鈕,5)右鍵單擊vba模塊並刪除。 正如我提到的,我擁有這些excel文件,這是一項常規工作,我想刪除人為的部分。 謝謝。

我會做的是,我將創建一個宏,該宏將打開這些文件並將其另存為xlsx而不是xlsm。 由於xlsx不能包含模塊,因此它們將消失。 比您只需要刪除原始的。

您甚至可以使用宏錄制來執行此操作。

如果我們談論的是很多文件,(我想是的),您可以生成文件的名稱,如果它們背后有邏輯(例如日期),也可以將它們放置在文件夾中,然后遍歷其中的項目文件夾,打開它們,另存為,刪除原始文件。

您可以找到很多方法來檢查文件夾(FSO)中的每個文件

新年快樂!

更改路徑並嘗試:

Option Explicit

Sub LoopThroughFiles()

    Dim StrFile As String
    Dim Element As Object
    Dim WB As Workbook

    StrFile = Dir("C:\Users\XXXXX\Desktop\Test\*")

    Do While Len(StrFile) > 0
        If Right(StrFile, 4) = ".xls" Then

            Set WB = Workbooks.Open("C:\Users\marios.p\Desktop\Test\" & StrFile)

            For Each Element In ActiveWorkbook.VBProject.VBComponents
                If Element.Type <> 100 Then
                    ActiveWorkbook.VBProject.VBComponents.Remove Element
                End If
            Next

            WB.Save
            WB.Close

        End If

        StrFile = Dir
    Loop

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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