Excel VBA - сбой метода диапазона при вызове из VBS - PullRequest
0 голосов
/ 28 августа 2018

Я получаю очень странную ошибку, и я потратил часы, пытаясь понять, что это такое, так что, возможно, у кого-то здесь будет идея!

Я использую инструмент для ежедневной обработки некоторых данных, и все работает нормально. Чтобы сэкономить немного времени, я запланировал задачу Windows для автоматического запуска .VBS, которая открывает мой инструмент и запускает код.

Сбой кода в 1-й строке приведенного ниже раздела (метод «Диапазон» объекта «_Worksheet» не выполнен):

With Range("OTBTota")
    .FormulaR1C1 = "=R[-1]C/R[10]C"
    .Value2 = .Value2
End With

Дело в том, что эта часть кода входит в длинный список диапазонов, в которых я делаю одно и то же (что работает просто отлично), и когда я запускаю ее из Excel напрямую, она работает .... !

Почему этот конкретный диапазон не работает, когда я запускаю этот код из VBS? Вот еще одна подсказка: если я снова запускаю этот скрипт VB, когда у меня уже есть процесс Excel, работающий в фоновом режиме (например, после того, как я получаю ошибку и закрываю VB Editor), тогда он работает нормально ...!

Может ли это быть из моего VB Script? Вот код:

Dim xlApp, xlBook  

  Set xlApp = CreateObject("Excel.Application")
  xlApp.DisplayAlerts = False
  xlApp.Application.Visible = False

  Set xlBook = xlApp.Workbooks.Open("C:\Users\User1\TEST.xlsm", 0, False)

  xlBook.Application.Run "AUTO_Update_All_A"

  xlBook.Save
  xlBook.Close
  xlApp.Quit

  Set xlBook = Nothing
  Set xlApp = Nothing

Это действительно не имеет никакого смысла для меня, но мои знания VB довольно ограничены, поэтому я могу упустить что-то очевидное.

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...