VBA: Как вы предотвращаете обновление QueryTable? - PullRequest
0 голосов
/ 07 апреля 2009

Я написал макрос, который импортирует файл CSV в мою электронную таблицу, используя QueryTable. Моя цель - импортировать данные в формате CSV и сохранить их в электронной таблице для дальнейшего использования.

Однако QueryTable обновляется внешним CSV-файлом, и я хотел бы предотвратить это (поскольку я хочу забыть о внешнем файле). Есть ли параметр QueryTable, который я могу использовать для предотвращения обновлений, или это неправильная функциональность для использования в целом?

Ответы [ 2 ]

5 голосов
/ 07 апреля 2009

Хорошо ... если ваша цель состоит в том, чтобы импортировать данные и не поддерживать эти данные в актуальном состоянии (т.е. снова обновлять с помощью CSV), то в конце VBA после команды .Refresh для таблицы запросов просто удалить таблицу запросов.

, например
Sheet1.QueryTables (1). Refresh (False)
Sheet1.QueryTables (1) .Delete

Обязательно передайте команду False для обновления, чтобы попросить Excel выполнить запрос forground, где выполнение вашего кода будет задерживаться до тех пор, пока вы не получите свои данные. Тогда ваша ячейка, в которую вы добавляете таблицу запросов, будет считаться обычной ячейкой. 1007 *

1 голос
/ 07 апреля 2009

Вы можете использовать VBA, чтобы просто открыть CSV как рабочую книгу. Как то так.

Set myCSVbook = Workbooks.Open Filename:="C:\dir\myfile.csv", Format:=2 '2 is csv

Как только вы это сделаете, вы можете скопировать отдельные ячейки или скопировать весь лист в другую книгу в одну строку. Я думаю, что для этого есть метод Copy объекта Worksheet.

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