2016-02-09 5 views
0

Я создал код, который скопирует RecordSet в Excel, и я хочу, чтобы макрос в файле Excel запускался. Код работает отлично, пока он не попадет в код для запуска макроса. Я не должен правильно называть приложение, но не могу понять это!Выполнение макроса Excel через Access Ошибка выполнения VBA -2147417851

Private Sub Command233_Click() 
Dim objXLS As Object 
Dim wks As Object 
Dim rsc As Recordset 
Dim idx As Long 
Set rsc = Me.RecordsetClone 
If Me.RecordsetClone.RecordCount = 0 Then 
MsgBox ("No Records To Export") 
Else 
rsc.MoveLast 
rsc.MoveFirst 
Set objXLS = CreateObject("Excel.Application") 
objXLS.Workbooks.Open FileName:="C:\Comps Macro.xlsm", ReadOnly:=True 
Set wks = objXLS.Worksheets(1) 
For idx = 0 To rsc.Fields.Count - 1 
    wks.Cells(1, idx + 1).Value = rsc.Fields(idx).Name 
Next 
wks.Range(wks.Cells(1, 1), wks.Cells(1, rsc.Fields.Count)).Font.Bold = True 
wks.Range("A2").CopyFromRecordset rsc, rsc.RecordCount, rsc.Fields.Count 
objXLS.Visible = True 
objXLS.Run ("Format") 
End If 

Set objXLS = Nothing 

End Sub 

Ошибка выполнения я получаю это: Run-Time Error '-2147417851 (80010105)': Метод 'Run' объекта '_Application' не удалось

+0

Существует ли формат в оценочной книге? –

+0

Да, я могу запустить макрос вручную в файле Excel – epifinygirl

+0

Попробуйте добавить имя файла и в вызов запуска –

ответ

0

Вы должны ссылаться на Sub или Правильно функционирует. Ваш подзаголовок Format определен на рабочей книжке или уровне листа?

Если определенно в модуле Sheet (например, Лист1):

objXLS.Run ("Sheet1.Format") 

Если на уровне рабочей книги:

objXLS.Run ("ThisWorkbook.Format") 

Надеется, что это помогает

Смежные вопросы