Часть макроса У меня обновляется соединение с SQL (которое запускает запрос для размещения двух столбцов данных на вкладке) и выполняет vlookup с данными (разные вкладки) в существующий столбец таблицы, созданной по запросу.VBA vlookup на столе, созданный Connection String
'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
Проблема у меня в том, что ВПР работает только для данных, которые уже в RwlID, чтобы начать с. Я подумал, что, возможно, это произошло, потому что оно двигалось до того, как соединение закончилось освежающим, поэтому я переместил две части кода по другую сторону от других запросов в макросе (это займет намного больше времени для запуска), но это не помогло.
Теперь я думаю, что Excel все еще считает, что RwlID имеет определенную длину. Так, например, вчера было 400 строк и теперь доходит до 450, мой поиск составляет только 400. (Только в Макро, как если бы я вручную вводил поиск снова после того, как макрос запустил ячейки, как я и ожидал)
так что я попытался добавить (RlwID в лист 5):
sheets(5).ListObjects(1).Name = "RwlID"
Думая, что это может переименовать таблицу 450 в качестве RwlID в отличие от 400, но не был успешным.
Любые идеи, почему это не работает? Как это исправить?
Спасибо.
Я уже пробовал это, и он просто возвращал пробелы, так как формула поиска не вставлялась в предполагаемый столбец вообще. Диапазон («M2»). Выберите ActiveCell.FormulaR1C1 = _ "= IF (ISNA (VLOOKUP ([@ polid], RenewedFromPolID! $ A $ 2: $ B $ 10000,2, FALSE)), [@ polid], VLOOKUP ([@ polid], RenewedFromPolID! $ A $ 2: $ B $ 10000,2, FALSE)) RenewedFromPolID - это название вкладки, в которой находится таблица ... не уверен, есть ли что-то очевидное, что мне не хватает Вот? – user2842721
Дополнительная информация по этому вопросу: а также выполнение vlookup в таблице, я попросил код скопировать его и вставить столбцы A и B (которые удерживают таблицу) в C и D. Это происходит после обновления соединения (в терминах времени выполнения кода, через минуту после, а обновление занимает секунды). Столбцы C и D показывают старую версию таблицы. – user2842721
Отключение фона Refresh на соединении исправил мою проблему. Теперь я могу запустить мой оригинальный Vlookup. – user2842721