У меня есть книга Excel, содержащая ~ 100 SQL таблиц соединений, которые находятся на отдельных листах и обновляются каждую неделю. Мой текущий код представляет собой циклический макрос (ниже), который проходит через каждый лист и обновляет каждую таблицу.
Sub RefreshLoop()
Dim wks As Worksheet
Dim qt As QueryTable
Dim lo As ListObject
For Each wks In ActiveWorkbook.Worksheets
For Each lo In wks.ListObjects
If lo.SourceType = 3 Then
With lo.QueryTable
.BackgroundQuery = False
.Refresh
End With
End If
Next lo
For Each qt In wks.QueryTables
qt.Refresh BackgroundQuery:=False
Next qt
Next wks
Set qt = Nothing
Set wks = Nothing
End Sub
Я пытаюсь сделать, как только таблица обновится, добавить новую строку в нижняя часть каждой таблицы, которая содержит текущую дату в первом столбце. Я попытался использовать приведенное ниже, а затем вызвать это в l oop, но у меня возникают всевозможные ошибки, которые я не совсем понимаю. В каждой таблице одинаковое количество столбцов, но с разными строками в зависимости от изменения параметра.
Dim newrow As ListRow
Set newrow = lo.ListRows.Add(AlwaysInsert:=True)
With newrow
.Range(1) = Date
End With
Пример ошибки;
Run-time error '91':
Object variable or With block variable not set
Я изо всех сил пытаюсь получить мой Обдумайте, что мне нужно сделать, используя Excel 2019