使用VBA在另一个Excel工作簿中执行模块

时间:2010-11-17 06:58:54

标签: excel-vba vba excel

我一直在努力让这项工作永远存在 我想从当前工作簿wbCntl执行另一个工作簿中的模块。
确切代码在一个应用程序中工作,但在另一个应用程

sSignalInProcess和wbSignalInProcess正确定义。想法是在第一次传递时打开或创建sSignalInProcess文件,然后在后续运行其代码时跳过该代码。

这是我的代码:

Sub GetSignalFile()
    'Open workbook if signal file is open
    On Error Resume Next
    Set wbSignalInProcess = Workbooks(sSignalInProcess)
    If Err.Number <> 0 Then
        Err.Clear
        'Open existing signal workbook
        On Error Resume Next
        Set wbSignalInProcess = Workbooks.Open(sFilePath & sSignalInProcess)
        If Err.Number <> 0 Then
            Err.Clear
            'Copy template signal workbook to a new workbook file for new signal
            FileCopy (sStdSignal), (sFilePath & sSignalInProcess)
            wbSignalInProcess.Save
            'Open new signal workbook
            Set wbSignalInProcess = Workbooks.Open(sFilePath & sSignalInProcess)
        End If
    End If
    Err.Clear
    Application.Run (wbSignalInProcess.Name & "!MainIntuitor")
    wbCntl.Activate
End Sub

该行

 Application.Run (wbSignalInProcess.Name & "!MainIntuitor")   
跳过

,没有错误就不会执行。任何帮助,将不胜感激。

捐赠

1 个答案:

答案 0 :(得分:0)

我建议你添加

 On Error Goto 0

在临界线之前。也许你会得到一个更有帮助的错误信息。顺便说一下,第二个

 On Error Resume Next
您的代码中没有必要

- 一旦您激活了“Resume Next”,它就会一直处于激活状态,直到您离开Sub或使用On Error Goto 0停用它。