Я думаю, что к этому моменту я уже прочитал все, что есть в моем вопросе, и ничто не решает мою проблему.
Мне нужно запустить код VBA, вложенный в большой Excel, который имеет много листов. Этот макрос должен подготовить мне таблицы и скрыт под кнопкой. Находится на листе «Процесс».
В Access VBA я использовал этот код, чтобы открыть и запустить этот код Excel vba:
Dim fd As FileDialog, fileName As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
fd.AllowMultiSelect = False
If fd.Show = True Then
If fd.SelectedItems(1) <> vbNullString Then
fileName = fd.SelectedItems(1)
End If
Else
'Exit code if no file is selected
End
End If
selectFile = fileName
Dim appExcel As Excel.Application
Dim myWorkbook As Excel.Workbook
' variables needed to open the macro in Excel
Const MODULE_NAME As String = "Extraction_BDD"
Const PROC_NAME As String = "extracteur"
Dim appExcelMacro As String
Set appExcel = CreateObject("Excel.Application")
Set myWorkbook = appExcel.Workbooks.Open(selectFile, True, False)
appExcel.Visible = True
Set appExcel = Nothing
Set myWorkbook = Nothing
ClasseurName = ActiveWorkbook.Name
' builds the string to send to Excel.Run method:
appExcelMacro = ClasseurName & "!" & MODULE_NAME '& "." & PROC_NAME
appExcel.Run (appExcelMacro)
' Close workbook and save changes
Workbooks(ClasseurName).Close SaveChanges:=False
End Sub
Эта команда "appExcel.Run (appExcelMacro)" должна выполнить работу, но ничего не делает. Я продолжаю получать ошибки, говоря:
"Ошибка времени выполнения" 1004 ":
Невозможно запустить макрос "MyWorkbook! Module_3.extracteur". Макрос может быть недоступен в этой книге или все макросы могут быть отключены "
Что не так, потому что там включен в Excel. И макрос работает хорошо после нажатия кнопки в Excel.
Итак, что я делаю не так? Где взломать?