Выполнение модуля в другой книге Excel с использованием VBA - PullRequest
0 голосов
/ 17 ноября 2010

Я пытался сделать эту работу навсегда.
Я хочу выполнить модуль в другой книге из текущей рабочей книги, 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 голосов
/ 18 ноября 2010

Я предлагаю вам добавить

 On Error Goto 0

до критической линии. Возможно, вы получите более полезное сообщение об ошибке. Кстати, второй

 On Error Resume Next

в вашем коде не требуется - после того, как вы активировали "Resume Next", он будет активироваться до тех пор, пока вы не покинете свой Sub или не деактивируете его с помощью On Error Goto 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...