У меня есть два файла Excel с поддержкой макросов в одном каталоге.Одним из них является SH.xlsm, в котором есть макрос, который должен запускать макрос в моем файле P.xlsm.Желательно, чтобы он мог запускать код без открытия книги P.xlsm.
Вот что у меня есть в файле SH.xlsm для запуска макроса с именем InsertImageTest в P.xlsm.
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.