У меня есть книга Excel, которая использует запрос мощности для извлечения данных из другой книги.Когда я открываю книгу вручную, она обновляется автоматически, но когда я вызываю ее из VBScript (что некоторые из вас недавно помогли мне найти другую книгу), она не обновляется.
Я использую тот же код, который некоторые из вас помогли мне на днях в другой книге, но для этого он не работает.Я также попытался поместить макрос autoexec в мою книгу, а также попробовал некоторый код VBA в книге, который обновляет данные.Они оба работают, когда я открываю книгу вручную, но ни одна не обновляет книгу, когда я открываю ее из VBScript.Я также попытался вызвать макрос из VBScript, но это тоже не сработало.Вот мой код:
Dim s
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook =
objExcel.Workbooks.Open("\\FilePath\Daily Snapshot.xlsm")
s = objExcel.ActiveWorkbook.BuiltinDocumentProperties("Last Save Time")
objExcel.Application.Visible = True
objExcel.DisplayAlerts = False
objExcel.AlertBeforeOverwriting = False
objWorkbook.WorkSheets(1).Activate
objWorkbook.RefreshAll
objExcel.ActiveWorkbook.Save
Do Until objExcel.ActiveWorkbook.BuiltinDocumentProperties("Last Save
Time") > s
Loop
'objExcel.ActiveWorkbook.Close
Я также пытался использовать DoEvents (который мне говорили ранее, что он не нужен), но странно то, что когда я включаю DoEvents - я получаю сообщение об ошибке VBScript об этом, но когда выскакивает сообщение об ошибке - тогда мои данные обновляются, пока сообщение об ошибке отображается на экране, но тогда, конечно, остальная часть сценария не завершается (какие части сохранения и закрытия)?Мне кажется, что, возможно, коду нужен какой-то перерыв, чтобы он мог выполнить обновление, но я понимаю, что именно в этом заключается разница между «Last Save Time» и текущим временем сохранения.Кажется, что происходит сбой в части RefreshAll (не только потому, что она не обновляется, но и не сохраняет мою книгу, которая является следующей частью после RefreshAll).Однако, если я не закомментирую часть ActiveWorkbook.Close - она закроет книгу.Спасибо за вашу помощь!