Lấy dữ liệu từ file xml bằng VB trong Excel

Liên hệ QC
Quả là biển học thật mênh mông, thanks bác doveandrose , thực sự thì em cũng không biết về bác batman1, chỉ được bác ấy comment vào tin nhắn.

 
Em muốn nhờ các anh/chị hướng dẫn giúp em thêm về vòng lặp For trong đoạn code sau:
Code này là lấy dữ liệu từ file XML được kết xuất từ ứng dụng HTKK ấy ạ - vào trong file excel.
Em không biết đặt vòng lặp For ở đâu và viết như thế nào để đoạn sau (chỗ "myDuLieu") được thay thế bằng các danh mục dữ liệu em để sẵn trong 1 Sheet tên là MS vùng dữ liệu từ B3 đến B132:
Danh mục dữ liệu này là các chỉ tiêu mã số các tài khoản trong kế toán được đặt theo thứ tự như trong bảng cân đối tài khoản được kết xuất ra từ ứng dụng HTKK ấy ạ.
Mã:
 .Range("R" & iRStartToPaste).Value = xmldoc.SelectSingleNode("//PL_CDTK/SoDuDauNam/No/myDuLieu").Text

em có kèm file nhờ các anh/chị sửa giúp em :D

Mã:
Sub LayDuLieuBCTC()
Dim filename, xmldoc As Object
Dim iCLastRow As Integer, iRStartToPaste As Integer

Worksheets("CDTK").Range("R39:AQ169").ClearContents

filename = Application.GetOpenFilename("XML Files, *.xml")
    If TypeName(filename) = "String" Then
        Set xmldoc = CreateObject("MSXML2.DOMDocument")
                If xmldoc.Load(filename) Then
                    With Worksheets("CDTK")
                        iCLastRow = .Range("R" & Rows.Count).End(xlUp).Row
                        iRStartToPaste = iCLastRow + 1
                  
                        .Range("R" & iRStartToPaste).Value = xmldoc.SelectSingleNode("//PL_CDTK/SoDuDauNam/No/myDuLieu").Text
                        .Range("V" & iRStartToPaste).Value = xmldoc.SelectSingleNode("//PL_CDTK/SoDuDauNam/Co/myDuLieu").Text
                        .Range("Z" & iRStartToPaste).Value = xmldoc.SelectSingleNode("//PL_CDTK/SoPhatSinhTrongNam/No/myDuLieu").Text
                        .Range("AD" & iRStartToPaste).Value = xmldoc.SelectSingleNode("//PL_CDTK/SoPhatSinhTrongNam/Co/myDuLieu").Text
                        .Range("AH" & iRStartToPaste).Value = xmldoc.SelectSingleNode("//PL_CDTK/SoDuCuoiNam/No/myDuLieu").Text
                        .Range("AM" & iRStartToPaste).Value = xmldoc.SelectSingleNode("//PL_CDTK/SoDuCuoiNam/Co/myDuLieu").Text
                  
                    End With
                End If
        Set xmldoc = Nothing
    End If
End Sub
Xin cảm ơn các anh/chị rất nhiều ạ
 

File đính kèm

  • Import XML to Excel.rar
    46.9 KB · Đọc: 43
Xin hỏi, em muốn lấy dữ liệu từ 1 file xml, và đưa kết quả đó vào 1 ô trong file excel em phải làm thế nào ạ?
Các anh có nguồn tài liệu hoặc bài viết tiếng việt nào về làm việc file xml bằng vba cho em xin .
Em cám ơn!
 
Web KT
Back
Top Bottom