Ошибка выполнения 1004: таблицы не могут перекрываться - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь записать макрос обновления Power Query. Всякий раз, когда я запускаю этот код, он выдает ошибку, что таблицы не могут перекрываться

Ошибка времени выполнения '1004' Таблица не может перекрыть другую таблицу

Я пытался это отладить, но тоже не работал

Windows("WorkOrderItemOpen2.0.xlsm").Activate
Sheets("Valid Labor").Activate

With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
    "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=Merge1;Extended Properties=""""" _
    , Destination:=Sheets("Valid Labor").Range("$A$1")).QueryTable
    .CommandType = xlCmdSql
    .CommandText = Array("SELECT * FROM [Merge1]")
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .ListObject.DisplayName = "Merge1"
    .Refresh BackgroundQuery:=True

End With

1 Ответ

0 голосов
/ 28 июня 2019

Вы добавляете новый ListObject (таблица) каждый раз, когда запускаете код, но предыдущая таблица остается на листе (в том же месте).Поскольку у вас не может быть перекрывающихся таблиц, вы получите ошибку.

Если вы хотите только обновить данные, все, что вам нужно сделать, это вызвать метод refresh объекта ListObject, например,

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