Запустите макрос для файла CSV, который хранится в другом файле - PullRequest
0 голосов
/ 02 октября 2018

У меня есть файл CSV, который я получаю ежедневно и форматирую с помощью макроса, который хранится в моем личном файле макроса.Я пытаюсь создать VBS-файл, который будет запускать макрос в CSV-файле с помощью запланированной задачи, но мне не повезло.Вот файл vbs:

Option Explicit

ExcelMacroExample

Sub ExcelMacroExample() 
  Dim xlApp 
  Dim xlBook 

  Set xlApp = CreateObject("Excel.Application") 
  Set xlBook = xlApp.Workbooks.Open("c:\users\dmcgettigan\desktop\test.csv", 0, True) 
  xlApp.Run "c:\users\dmcgettigan\desktop\Personal.xlsb!newsales"
  xlApp.Quit 

  Set xlBook = Nothing 
  Set xlApp = Nothing 
End Sub 

Это ошибка, которую я получаю:

C: \ Users \ dmcgettigan \ Desktop \ test.vbs (13, 3)Microsoft Excel: не удается запустить макрос «c: \ users \ dmcgettigan \ desktop \ Personal.xlsb! New sales».Макрос может быть недоступен в этой книге или все макросы могут быть отключены.

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 02 октября 2018

Для меня это работает так

  Dim xlApp 

  Set xlApp = CreateObject("Excel.Application") 
  xlapp.workbooks.open("<Path to your PERSONAL.XLSB>")
  xlApp.Run "PERSONAL.XLSB!Test"  
  xlApp.Quit 

Комментарий также правильный, у вас не может быть пробела в имени подпрограммы, которую вы хотите запустить.

Обновление Без возможности протестировать ваш код должен выглядеть следующим образом

Option Explicit

ExcelMacroExample

Sub ExcelMacroExample() 
  Dim xlApp 
  Dim xlBook 

  Set xlApp = CreateObject("Excel.Application") 
  Set xlBook = xlApp.Workbooks.Open("c:\users\dmcgettigan\desktop\test.csv", 0, True) 
  xlapp.workbooks.open("c:\users\dmcgettigan\desktop\Personal.xlsb")
  xlApp.Run "Personal.xlsb!newsales"
  xlApp.Quit 

  Set xlBook = Nothing 
  Set xlApp = Nothing 
End Sub
...