vba报错

使用问题 · 761 次浏览
epodak 创建于 2024-02-16 15:45

Private Sub DeleteAllModules()
    Dim vbProj As Object
    Dim vbComp As Object
    Dim i As Integer
    Dim moduleName As String
    
    Set vbProj = ThisWorkbook.VBProject
    
    ' 从后向前遍历集合
    For i = vbProj.VBComponents.Count To 1 Step -1
        Set vbComp = vbProj.VBComponents(i)
        moduleName = vbComp.Name
        
        ' 检查模块名称是否符合特定模式
        If moduleName Like "模块*" Then
            ' 删除符合模式的模块
            vbProj.VBComponents.Remove vbComp
        End If
    Next i
End Sub
===
我想让vba函数在执行之后自毁,所以遍历所有"模块*",这个功能,我直接在excel vba中调试是没有任何问题的.
但是放到你的office软件辅助中,函数调用就会出错.
===
执行子程序DoOperation出错:子程序(DoOperation)返回中止。命令返回失败,错误:系统错误 &H80070057 (-2147024809)。  参数错误。 (Office软件辅助)。
===
对于这种错误能不能关闭?或者我该怎么调用这个函数避免触发这个错误.
虽然我的所有功能都实现了,但是这个报错很烦人.


回复内容
CL 2024-02-16 15:49
#1

运行vba也需要在文档里创建模块,然后执行完再删除模块,只适合功能性的调用,如果在里面也操作模块,可能就会有类似的问题产生。

如果要隐藏提示,可以参考这里 :https://getquicker.net/KC/Kb/Article/250 

epodak 回复 CL 2024-02-16 15:50 :

对头.关闭了之后可以了.

回复主贴