2017-02-28 46 views
2

我想通過macroXML內容導入excel。通過VBA將XML導入EXCEL不會刷新

我試圖記錄的步驟和通過EXCEL VBA創建的自動代碼如下:

代碼:

Sub Macro4() 
' 
' Macro4 Macro 
' 

Sheets("Temp").Select 
    Workbooks.Open Filename:= _ 
     "C:\Users\BERAAR1\Desktop\Utilization_matrix\Requests_Weekly.xml" 
    Range("A1").Select 
    Range(Selection, Selection.End(xlToRight)).Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.Copy 
    Windows("test.xlsm").Activate 
    Sheets("Temp").Select 
    ActiveSheet.Paste 
    Windows("Requests_Weekly.xml").Activate 
    ActiveWindow.Close 
End Sub 

當我執行再次宏,這只是只讀取頭和XML的內容不會加載到excel中。

您能否推薦對代碼進行任何調整,以便我可以將XML導入EXCEL而不會出現任何問題?

+0

您可以將XML的片段,使我們可以重現? – Parfait

回答

0
Sub test_user2075017() 
    ImportXML "C:\Users\BERAAR1\Desktop\Utilization_matrix\Requests_Weekly.xml" 
End Sub 

和被叫子:

Sub ImportXML(XML_Path As String) 
    Dim wB As Workbook 
    Set wB = Workbooks.Open(filename:=XML_Path) 
    With wB.Sheets(1) 
     .Range(.Range("A1"), _ 
       .Cells(.Cells(.Rows.count,"A").End(xlUp).Row, _ 
         .Cells(1,.Columns.count).End(xlToLeft).Column)).Copy 
    End With 'wB.Sheets(1) 

    With ThisWorkbook.Sheets("Temp") 
     .Cells.Clear 
     .Range("A1").Paste 
    End With 'ThisWorkbook.Sheets ("Temp") 

    MsgBox wB.Name & " was imported in sheet : Temp", vbOKOnly + vbInformation 
    wB.Close False 
End Sub 
+0

我得到錯誤'運行時錯誤#:438''對象不支持屬性或方法',當點擊調試時,它將我引導到'.Range(「A1」)。Paste'代碼。請告知@ R3uK – user2075017

+0

@ user2075017:嘗試編輯。如果您仍然有錯誤,那麼您的XML中有多少行?你是否有足夠的Excel工作表要粘貼到? – R3uK

+0

我仍然使用上述代碼獲得相同的'對象不支持屬性'錯誤。我的XML是一個動態工作簿,它是從Dynamics CRM工具導出的,每次打開和刷新工作表時平均會有1K條記錄。 。我確定目標表有足夠的行數。 – user2075017