我在一个文件夹中有许多excel文件(.xls),每个文件中都有一个vba宏/模块,我需要将其删除。我可以编写一个遍历该文件夹,检查每个Excel文件并删除vba模块的外部程序吗?请告诉我哪种编程语言最容易做到。谢谢!
通过手动过程,我必须1)打开工作表,2)单击“启用内容”,3)转到“开发人员”选项卡,4)单击“ Visual Basic”按钮,5)右键单击vba模块并删除。正如我提到的,我拥有这些excel文件,这是一项常规工作,我想删除人为的部分。谢谢。
答案 0 :(得分:2)
我要做什么,我将创建一个宏,该宏将打开这些文件并将其另存为xlsx而不是xlsm。由于xlsx不能包含模块,因此它们将消失。 比您只需要删除原始的。
您甚至可以使用宏录制来做到这一点。
如果我们要谈论很多文件,(我想我们这样做) 如果文件后面有逻辑(例如日期),则可以生成文件的名称 或者您可以将它们放入文件夹中,然后循环浏览文件夹中的项目,将其打开,另存为,删除原始文件。
您可以找到许多选项来检查文件夹(FSO)中的每个文件
新年快乐!
答案 1 :(得分:1)
更改路径并尝试:
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