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