gpt4 book ai didi

excel - 有没有办法循环浏览excel工作表中的所有模块,然后全部删除?

转载 作者:行者123 更新时间:2023-12-04 22:13:40 25 4
gpt4 key购买 nike

这是我当前的代码。
它可以满足我的需要,我只是想知道是否有一种方法可以循环浏览模块,而不必输入每个模块的名称。

Dim wb As Workbook
Set wb = ActiveWorkbook
Application.ScreenUpdating = False

TempFilePath = Environ$("temp") & "\"
TempFileName = "Cable Rework" & " " & Format(Now, "mm-dd-yy") 'this names the temp file as the Pallet request followed by the current date and time
FileExtStr = ".xls": FileFormatNum = 51

wb.SaveCopyAs TempFilePath & TempFileName & FileExtStr

Workbooks.Open (TempFilePath & TempFileName & FileExtStr)

With ActiveWorkbook

.VBProject.VBComponents.Remove .VBProject.VBComponents("Module1")
.VBProject.VBComponents.Remove .VBProject.VBComponents("Module2")
.VBProject.VBComponents.Remove .VBProject.VBComponents("Module3")
.VBProject.VBComponents.Remove .VBProject.VBComponents("Module4")
.Save
.Close
End With

Application.ScreenUpdating = True
End Sub

最佳答案

使用 For Each循环,可以循环遍历VBComponents的整个集合并决定哪些需要删除。该集合还包含“文档模块”
每个人一个 Worksheet以及 ThisWorkbook所以您可能不想删除所有内容。
您可以使用 VBComponent.Type 查看每个组件的类型属性(property)。 Here是描述不同类型的列表(转到第二个表)。标准模块为 1,类模块为 2,用户表单为 3。
一旦你有了 For 循环,你只需要检查 Type等于 1、2 或 3 然后调用 VBComponents.Remove .

Sub Example()
Dim wb As Workbook
Set wb = ActiveWorkbook
Application.ScreenUpdating = False

TempFilePath = Environ$("temp") & "\"
TempFileName = "Cable Rework" & " " & Format(Now, "mm-dd-yy") 'this names the temp file as the Pallet request followed by the current date and time
FileExtStr = ".xls": FileFormatNum = 51

wb.SaveCopyAs TempFilePath & TempFileName & FileExtStr

Set wb = Workbooks.Open(TempFilePath & TempFileName & FileExtStr)

Dim VBComp As Variant
For Each VBComp In wb.VBProject.VBComponents
If VBComp.Type = 1 Or VBComp.Type = 2 Or VBComp.Type = 3 Then
wb.VBProject.VBComponents.Remove VBComp
End If
Next
wb.Save
wb.Close

Application.ScreenUpdating = True
End Sub
注意:通常情况下,在从该集合中删除项目时循环该集合很有可能导致循环元素出现问题。但是我没有遇到这个循环的任何问题,所以我没有做通常的解决方法,将要删除的对象保存到一个数组中,然后再删除它们。

关于excel - 有没有办法循环浏览excel工作表中的所有模块,然后全部删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71344178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com