【发布时间】: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.
【问题讨论】: