2016-11-23 2 views
0

Я использую код VBS, чтобы открыть и запустить Excel макрос автоматически, но получаю следующее сообщение об ошибке:Запуск макроса из VBS файла Giving Ошибки

Ошибка: Не удается запустить макрос «расположение файла». Макрос может быть недоступен в этой книге или все макросы могут быть отключены. Код: 800A03EC Источник: Microsoft Excel

VBS Код:

Dim ObjExcel, ObjWB 
Set ObjExcel = CreateObject("Excel.Application") 
ObjExcel.Visible = True 


Set ObjWB = ObjExcel.Application.Run("C:\Automation\TestCasesBackupScript.xlsm!Backup3") 


ObjWB.Close False 
ObjExcel.Quit 
Set ObjExcel = Nothing 

Macro включена и "Backup3" является Sub имя в модуле TestCasesBackupScript.xlsm файла.

В ожидании отзывов.

спасибо.

ответ

3

Рабочая книга, которую вы указываете в Application.Run, должна быть открыта в контексте вашего объекта Application. Просто откройте его первым, а затем вызвать его:

Dim ObjExcel, ObjWB 
Set ObjExcel = CreateObject("Excel.Application") 
ObjExcel.Visible = True 

Set ObjWB = ObjExcel.Workbooks.Open("C:\Automation\TestCasesBackupScript.xlsm") 
ObjWB.Application.Run("Backup3") 

ObjWB.Close False 
ObjExcel.Quit 
Set ObjExcel = Nothing 

Примечание: Если Backup3 фактически возвращает объект Workbook (который является единственной причиной использования синтаксиса Set ObjWB = ObjExcel.Application.Run, вы хотите, чтобы захватить эту ссылку в своей собственной переменной.

+0

Благодарим за отзыв. После изменения кода появляется следующая ошибка: «Не удается запустить макрос« Backup3 ». Макрос может быть недоступен в этой книге или все макросы могут быть отключены. Код: 800A03EC. Excel ». Ошибка в этой строке: ObjWB.Application.Run (« Backup3 »). – mkarim

+0

Работал после того, как я переместил макрос из модуля в объекты Microsoft Excel -> Sheet1 (Sheet1). Изменена строка, ror before as: ObjWB.Application.Run («Sheet1.Backup3») - спасибо за ваши отзывы, это помогло мне посмотреть в нужное место. – mkarim

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