VBA vlookup на столе, создаваемом Connection String

Часть макроса Я обновляю соединение с SQL (которое запускает запрос для размещения двух столбцов данных на вкладке) и выполняет vlookup с данными (разные вкладки) в существующем столбце таблицы, созданной запросом.

'Refreshing Connection named Query From Warehouse ActiveWorkbook.Connections("Query from Warehouse").Refresh Range("M2").Select ActiveCell.FormulaR1C1 = _ "=IF(ISNA(VLOOKUP([@polid],RwlID,2,FALSE)),[@polid],VLOOKUP([@polid],RwlID,2,FALSE))" 

Таблица, созданная запросом с именем RwlID

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

Теперь я думаю, что Excel все еще считает, что RwlID имеет определенную длину. Так, например, вчера было 400 строк, и сегодня он достигает 450, мой поиск составляет только 400. (Только в Макро, как если бы я вручную вводил поиск снова после того, как макрос запустил ячейки, как я и ожидал)

Поэтому я попробовал добавить (RlwID находится в листе 5):

  sheets(5).ListObjects(1).Name = "RwlID" 

Думая, что он может переименовать таблицу 450 как RwlID в отличие от 400, но не был успешным.

Любые идеи, почему это не работает? Как это исправить?

Благодарю.

Самое простое решение состоит в том, чтобы просто заставить вашу формулу смотреть на большую часть таблицы, а не только на диапазон RwlID.

 "=IF(ISNA(VLOOKUP([@polid],$A$2:$B$2000,2,FALSE)),[@polid],VLOOKUP([@polid],$A$2:$B$2000,2,FALSE))" 

Проблема в том, что код продолжается, пока запрос все еще обновляется, поэтому vlookup был выполнен до того, как будут данные для поиска. Исправление – отключить обновление фона: Data -> Connectons -> Properties -> untick 'enable background refresh'

  • VLOOKUP с критериями как из строки, так и столбца
  • Vlookup + Iferror в ошибке VBA «1004»
  • Использовать OR в vlookup Table Array
  • Значения числа букв VLookup - Удалить строки
  • Попытка выделить экземпляры в одном столбце, где значение дублируется в другом столбце
  • Excel сравнивает содержимое частичных ячеек
  • Ошибка VLOOKUP N / A
  • VBA Vlookup не работает после изменения столбца
  • Как обеспечить альтернативы для vlookup в excel
  • Excel indexmatch, vlookup
  • Array VLookup Возврат неверного значения VBA
  • Interesting Posts

    Отображение всех значений элементов массива в одном MsgBox VBA

    Использование ClosedXML Получение Общая ошибка произошла в GDI + Error

    Сравните данные в двух столбцах и извлеките значение в другой столбец

    Невозможно выполнить функцию kill VBA – Ошибка выполнения «13»

    Excel VBA: обработка ошибок работает только за один проход

    Excel VBA: как использовать Application.ontime для вызова события click?

    как вы находите последний столбец или строку в таблице Excel с использованием python pandas

    Как удалить нечисловые символы в ячейках и связать результат с URL?

    Проверка открытого файла vb.net

    нет ответа на iPad, чтобы показать данные ячейки excel

    Извлечь текст из строки в excel

    Macro vb Получить значение из фильтра

    Loop on Master Sheet, который ссылается на другие имена листов Кроме двух

    вставить в ngGrid из excel

    Скопировать диапазон папок (с использованием заданных значений) в другую книгу

    Давайте будем гением компьютера.