Вариант 1. Если знаем что и где лежит.
Код |
---|
Sub nnn()
Dim a()
Dim fl$
'---------------
fl = ThisWorkbook.Path & "\NO_BOUPR_6617_6617_6617003362661701001_20170221_C90CAFCD7904471D8AF57A83F70E0863.xml"
With CreateObject("MSXML2.DOMDocument")
.Load fl
ReDim a(1 To 7)
a(1) = .SelectSingleNode("//Файл/Документ/СвНП").GetAttribute("ОКПО")
a(2) = .SelectSingleNode("//Файл/Документ/Баланс/Актив").GetAttribute("СумОтч")
a(3) = .SelectSingleNode("//Файл/Документ/Баланс/Актив/МатВнеАкт").GetAttribute("СумОтч")
a(4) = .SelectSingleNode("//Файл/Документ/Баланс/Актив/НеМатФинАкт").GetAttribute("СумОтч")
a(5) = .SelectSingleNode("//Файл/Документ/Баланс/Актив/Запасы").GetAttribute("СумОтч")
a(6) = .SelectSingleNode("//Файл/Документ/Баланс/Актив/ДенежнСр").GetAttribute("СумОтч")
a(7) = .SelectSingleNode("//Файл/Документ/Баланс/Актив/ФинВлож").GetAttribute("СумОтч")
End With
Cells(3, 1).Resize(1, UBound(a)) = a
End Sub |
Вариант 2. Если знаем не всё.
Код |
---|
Sub uuu()
Dim a()
Dim nd, at
Dim fl$
'---------------
fl = ThisWorkbook.Path & "\NO_BOUPR_6617_6617_6617003362661701001_20170221_C90CAFCD7904471D8AF57A83F70E0863.xml"
With CreateObject("MSXML2.DOMDocument")
.Load fl
ReDim a(1 To 7)
For Each nd In .getElementsByTagName("*")
If nd.NodeName = "СвНП" Then
a(1) = nd.GetAttribute("ОКПО")
Else
For Each at In nd.Attributes
If at.Name = "КодСтроки" Then
Select Case at.Value
Case "1600": a(2) = nd.GetAttribute("СумОтч")
Case "1150": a(3) = nd.GetAttribute("СумОтч")
Case "1170": a(4) = nd.GetAttribute("СумОтч")
Case "1210": a(5) = nd.GetAttribute("СумОтч")
Case "1250": a(6) = nd.GetAttribute("СумОтч")
Case "1260": a(7) = nd.GetAttribute("СумОтч")
End Select
End If
Next
End If
Next
End With
Cells(3, 1).Resize(1, UBound(a)) = a
End Sub |