Страницы: 1
RSS
VBA: данные из xml-файла сразу в массив или Recordset, Макросом загрузить данные из xml-файла без выгрузки на лист
 
А) Нужно с помощью VBA загрузить данные из xml-файла сразу в массив или Recordset без промежуточной выгрузки на лист, т.к. этот промежуточный шаг может сильно тормозить работу. Т.е. выгрузить именно в двумерный массив как бы таблицу, которая получается при простом открытии xml-файла в Excel.
Б) Если есть возможность сделать запрос напрямую к xml-файлу средствами ADO, чтобы отобрать нужные записи, то как это сделать? Например, отобрать все товары с ценой > 100 руб. или с кодом, оканчивающимся на "5".

Во вложении пример xml. Теоретически может быть более 1 млн записей и тогда выгрузка на лист Excel точно не пройдёт. Про ограничения самого файла xml не знаю.
 
а почему именно VBA выбран подходящим способом?
 
Цитата
nilske написал:
а почему именно VBA выбран подходящим способом?
Уже давно есть соответствующие макросы для обработки данных и формирования отчётов. Но сменился формат источника этих данных на xml и хотелось бы просто сделать минимальные доработки, а не ваять всё заново.
Если есть варианты, например, с Power Query, но с возможностью запускать процедуру нажатием одной кнопки, то было бы тоже неплохо. Но с Power Query знаком совсем мало.  
 
Поищите в интернете 'VBA. Парсинг XML'
А вообще это задача для PQ. В т.ч. и п.2 можно сразу обработать
Изменено: Sanja - 14.01.2026 06:57:29
Согласие есть продукт при полном непротивлении сторон
 
По информации от Дипсика, рабоать с XML в ADO-Recordset можно (но зачем... :)), но ваш файл не соответствует структуре ADO XML, поэтому лучше использовать MSXML и т.п.
 
Здесь - замечательная статья о работе с XML в VBS (для VBA также актуально).
Владимир
Страницы: 1
Читают тему
Наверх