Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как сделать макрос, извлекающий значения из документа *.xml - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как сделать макрос, извлекающий значения из документа *.xml
Molotoklk Дата: Суббота, 24.09.2011, 11:53 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте,
есть задача создать реестр из кучи документов .xml со значениями из нескольких параметров. чтобы не копировать каждое надо написать макрос, который бы вытаскивал необходимые значения из указанного .xml-файла и вставлял их в таблицу. предположительно это должно выглядеть в следующей форме: в столбце А указывается путь к xml, из которого будет заполнятся соответствующая ячейке строка таблицы.
Версия Excel -2010.
Подскажите пожалуйста, как это реализовать, заранее спасибо
 
Ответить
СообщениеЗдравствуйте,
есть задача создать реестр из кучи документов .xml со значениями из нескольких параметров. чтобы не копировать каждое надо написать макрос, который бы вытаскивал необходимые значения из указанного .xml-файла и вставлял их в таблицу. предположительно это должно выглядеть в следующей форме: в столбце А указывается путь к xml, из которого будет заполнятся соответствующая ячейке строка таблицы.
Версия Excel -2010.
Подскажите пожалуйста, как это реализовать, заранее спасибо

Автор - Molotoklk
Дата добавления - 24.09.2011 в 11:53
Molotoklk Дата: Суббота, 24.09.2011, 16:01 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

например файл Xml
<ReferenceMark>, при этом В ячейке В1 должен прописываться текст: "Воронежская область Кантемировский район, северная часть кадастрового квартала 36:12:61 00016"
<Note> - в С1 "обл. Воронежская, р-н Кантемировский, с. Писаревка" и т.п. какие функции для этого используются в VBA?
К сообщению приложен файл: kv_051101036000.xml (9.0 Kb)
 
Ответить
Сообщениенапример файл Xml
<ReferenceMark>, при этом В ячейке В1 должен прописываться текст: "Воронежская область Кантемировский район, северная часть кадастрового квартала 36:12:61 00016"
<Note> - в С1 "обл. Воронежская, р-н Кантемировский, с. Писаревка" и т.п. какие функции для этого используются в VBA?

Автор - Molotoklk
Дата добавления - 24.09.2011 в 16:01
Гость Дата: Суббота, 24.09.2011, 20:58 | Сообщение № 3
Группа: Гости
В Уокенбахе есть глава Импорт и экспорт XML6данных
Сам не пробовал.
 
Ответить
СообщениеВ Уокенбахе есть глава Импорт и экспорт XML6данных
Сам не пробовал.

Автор - Гость
Дата добавления - 24.09.2011 в 20:58
Serge_007 Дата: Суббота, 24.09.2011, 23:29 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВариант

Автор - Serge_007
Дата добавления - 24.09.2011 в 23:29
Hugo Дата: Суббота, 24.09.2011, 23:49 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация: 790 ±
Замечаний: 0% ±

365
Половину кода Вы уже видели у Казанского, половину я свою дописал
Но тут теги чувствительны к регистру!
[vba]
Код
Option Explicit

'http://www.xmlfiles.com/dom/dom_access.asp

Sub GetXML()
Dim arFiles, x, lRow&, c As Range
arFiles = Application.GetOpenFilename("XML files,*.xml", , "Выберите файлы", , True)
If Not IsArray(arFiles) Then Exit Sub
lRow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
For Each x In arFiles
         For Each c In [b1:e1].SpecialCells(xlCellTypeConstants)
             Cells(lRow, c.Column) = FindTag(x, (c))
         Next
         lRow = lRow + 1
Next
End Sub

Private Function FindTag$(ByRef ff, ByRef sTag$)

With CreateObject("Microsoft.XMLDOM")
.async = "false"
.Load (ff)
FindTag = .getElementsByTagName(sTag).Item(0).Text
End With

End Function
[/vba]
К сообщению приложен файл: 3107553.zip (19.2 Kb)


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеПоловину кода Вы уже видели у Казанского, половину я свою дописал
Но тут теги чувствительны к регистру!
[vba]
Код
Option Explicit

'http://www.xmlfiles.com/dom/dom_access.asp

Sub GetXML()
Dim arFiles, x, lRow&, c As Range
arFiles = Application.GetOpenFilename("XML files,*.xml", , "Выберите файлы", , True)
If Not IsArray(arFiles) Then Exit Sub
lRow = ActiveSheet.UsedRange.Row + ActiveSheet.UsedRange.Rows.Count
For Each x In arFiles
         For Each c In [b1:e1].SpecialCells(xlCellTypeConstants)
             Cells(lRow, c.Column) = FindTag(x, (c))
         Next
         lRow = lRow + 1
Next
End Sub

Private Function FindTag$(ByRef ff, ByRef sTag$)

With CreateObject("Microsoft.XMLDOM")
.async = "false"
.Load (ff)
FindTag = .getElementsByTagName(sTag).Item(0).Text
End With

End Function
[/vba]

Автор - Hugo
Дата добавления - 24.09.2011 в 23:49
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!