Я хочу создать файл .VBS, чтобы обновить таблицу на рабочем листе. Данные этой таблицы поступают из внешнего источника данных (запрос MS). Обычно я просто щелкаю по столу и перехожу к Refresh. Это то, что я хотел бы дублировать в .VBS-файле. Это возможно?VBS-файл для обновления внешних данных в конкретных рабочих листах
Я исследовал это на Stackoverflow (и Google), но мне не повезло найти код для конкретного рабочего листа, только для книги. Я бы хотел сделать это для конкретного листа.
Я сделал исследование, как получить доступ к рабочей таблицы Excel через .VBS, и это то, что я до сих пор:
Dim objXLApp, objXLWb, objXLWs
Set objXLApp = CreateObject("Excel.Application")
Set objXLWb = objXLApp.Workbooks.Open("C:\Test\Test.xlsx")
Set objXLWs = objXLWb.Sheets(6)
' This is the code I added to solve my problem
For Each qry In objXLWs.QueryTables
qry.Refresh(false)
Next
objXLWs.Calculate
' End
objXLWb.Save
objXLWb.Close (False)
Set objXLWs = Nothing
Set objXLWb = Nothing
objXLApp.Quit
Set objXLApp = Nothing
MsgBox "Done"
Теперь «objXLWs.Refresh» не работает. Также не RefreshAll, RefreshAllData и т. Д. Я получаю «Object не поддерживает это свойство или метод». Я также попробовал. Рассчитайте, но это не работает для этого случая. Мне интересно, есть ли что-то, чего мне не хватает, или если мне придется реструктурировать этот код по-другому?
Любое руководство будет оценено по достоинству.
Спасибо,
Марк
Я исследовал немного больше, и я думаю, что я получил его. Я обновил запрос, а затем воспользуюсь Calculate, чтобы обновить рабочий лист. После этого лист обновляется. Я редактировал мой код выше: 'code'For Every qry В objXLWs.QueryTables qry.Refresh (false) Следующий objXLWs.Calculate' code' –