【问题标题】:Error when running a macro from a different excel file从不同的 Excel 文件运行宏时出错
【发布时间】:2019-06-27 17:16:59
【问题描述】:

我在一个目录中有两个启用宏的 Excel 文件。其中之一是 SH.xlsm,它有一个宏,应该在我的 P.xlsm 文件中运行一个宏。最好它应该能够在不打开 P.xlsm 工作簿的情况下运行代码。

这是我目前在 SH.xlsm 文件中的内容,用于在 P.xlsm 中运行名为 InsertImageTest 的宏。

Private Sub Worksheet_Change(ByVal Target As Range)
    ' Call InsertImageTest
    codeWorkBookPath = "C:\Users\AsgeirA\OneDrive\Documents\PowerApps\Signature Signer\"
    codeWorkBookName = "P.xlsm"
    codeWorkBookFullPathName = UCase(Trim(codeWorkBookPath)) & UCase(Trim(codeWorkBookName))
    Debug.Print codeWorkBookFullPathName
    codeWorkbookAlreadyOpen = IsWorkBookOpen(codeWorkBookPath & codeWorkBookName)
    If Not codeWorkbookAlreadyOpen Then
        Workbooks.Open FileName:=codeWorkBookFullPathName, UpdateLinks:=False, ReadOnly:=True
    End If

    Workbooks("SH.xlsm").Activate
    Sheets("Data").Activate

    argString = "'" & Trim(codeWorkBookName) & "'!" & Trim("InsertImageTest")
    Application.Run argString
End Sub

Function IsWorkBookOpen(FileName As String)
    Dim ff As Long, ErrNo As Long

    On Error Resume Next
    ff = FreeFile()
    Open FileName For Input Lock Read As #ff
    Close ff
    ErrNo = Err
    On Error GoTo 0

    Select Case ErrNo
    Case 0:    IsWorkBookOpen = False
    Case 70:   IsWorkBookOpen = True
    Case Else: Error ErrNo
    End Select
End Function

我的代码的第一个小问题是它打开了 P.xlsm 工作簿。第二个问题是“InsertImageTest”宏没有运行。我只是打开第二个工作簿并显示它。

Run-time error '1004':

Cannot run the macro "P.xlsm'!InsertImageTest'. The macro may not be available in this workbook or all macros may be disabled.

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    我进行了一些调查,似乎是新版本的 Microsoft (16.0.11727.20188) 导致了问题。我可以建议降级到可以解决问题的旧版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      相关资源
      最近更新 更多