У меня есть две таблицы, одна со списком городов (мы будем называть этот список городов), а другая с точками данных, соответствующими этим городам (назовите эту таблицу данных). Таблица данных связана с запросом Select, который я создал в MS SQL Server. Этот запрос/таблица данных содержит одно предложение Where
, в котором я заменил критерии SQL и заменил ?
, чтобы сделать его параметром при подключении к Excel.Обновление таблиц с VBA
Теперь, когда у меня есть это, я объясню, что я пытаюсь выполнить. Я хочу прокрутить список городов и для каждого города в списке, обновить таблицу данных, чтобы отразить точки данных для города. В конечном счете, я хотел бы пройти цикл, и каждый раз, когда таблица данных обновляется, она сохраняет копию книги с этой конкретной таблицей.
Я разместил свой текущий код ниже, но моя проблема заключается в том, что таблица никогда не обновляется с текущими данными, которые соответствуют городу, который в настоящее время выбран через цикл. С учетом сказанного, если я удалю ключ escape
, чтобы вырваться из макроса VBA, таблица будет обновляться с каким бы ни был последний город до того, как я остановил макрос.
Код:
Sub Macro1()
Dim WS As Worksheet
Dim WS2 As Worksheet
Dim CT As Variant
Dim MSG As String
Set WS = Sheets("Sheet1")
Set WS2 = Sheets("Sheet2")
CT = Range("A1").CurrentRegion
For i = 2 To UBound(CT, 1)
MSG = ""
For J = 1 To UBound(CT, 2)
WS.Range("$D$2").Value = CT(i, J) //Places the city into Cell $D$2 which is where The Data Table looks to for the parameter.
Exit For
Next J
ActiveWorkbook.Connections("Query from Database").Refresh
WS2.ListObjects(1).Refresh
Next i
End Sub
Это почти как если бы макрос работает слишком быстро для таблицы, чтобы догнать и обновить. Я попытался добавить несколько кодов ожидания в код, надеясь, что он даст достаточно времени, чтобы обновить таблицу, но это не повлияло. Я также отключил Background Refresh
, и это тоже ничего не делает. Сейчас он просто просматривает таблицу города, и каждый город показывает, что запрос обновляется, но после того, как запрос завершен, он переходит в следующий город, не обновляя таблицу данных. ПОМОГИТЕ!
Я тоже это прочитал и даже видел трюк «Два обновления», но, к сожалению, это не сработало. Как я уже говорил выше, я уже снял флажок «Включить обновление фона», и, хотя это замедляет работу и позволяет обновлять запрос, по какой-то причине таблица не обновляется. – Jcmoney1010