Строка запроса буквально отправляется на сервер базы данных, и поскольку ваш sql пытается обратиться к списку Excel, к которому сервер не может получить доступ, он возвращает ошибку. Сервер ищет таблицу с именем [SQLQueries! $ A2: A385]
Чтобы придерживаться текущего плана, вам нужно будет передать предложение IN () буквально или с помощью переменной vba, отформатированной так:
IN ('item1', 'item2' ...)
Примечание: Вы можете удалить одинарные кавычки, если элементы являются числовыми
Я советую переосмыслить план либо
1) если возможно настроить вещи на стороне базы данных: можете ли вы создать новую справочную таблицу, чтобы присоединиться к фактической таблице или создать представление, которое возвращает только нужные строки? Тогда вам понадобится задание, которое настраивает представление / таблицу фильтрации перед выполнением запроса. Идея в том, что вам не нужно корректировать запрос каждый раз, когда bc постоянная строка sql будет возвращать нужные вам строки
Или же
2) если исходная таблица имеет, скажем, 100 тыс. Строк или меньше, а данные не слишком широки, просто выделите все строки в Excel на новом листе, затем отфильтруйте этот лист (добавьте новый столбец в Excel, который возвращает true, используя vlookup против вашего справочный лист) или используйте vlookup на справочном листе, чтобы вытянуть нужные столбцы