通过 VBA 将 XML 导入 EXCEL 不会刷新

Posted

技术标签:

【中文标题】通过 VBA 将 XML 导入 EXCEL 不会刷新【英文标题】:XML import into EXCEL via VBA doesnt refresh 【发布时间】:2017-07-19 02:43:27 【问题描述】:

我正在尝试通过macroXML 内容导入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 中?

【问题讨论】:

你能发布一个 XML 的 sn-p 以便我们重现吗? 【参考方案1】:
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

【讨论】:

我收到错误 Run time error#:438 object doesnt support the property or method,当点击调试时,它会将我定向到 .Range("A1").Paste 代码。请告知 @R3uK @user2075017 :尝试编辑。如果仍然有错误,那么您的 XML 中有多少行?您要粘贴到的 Excel 工作表中是否有足够的内容? 我仍然收到与上述代码相同的object doesnt support the property 错误。我的 XML 是从 Dynamics CRM 工具导出的动态工作簿,每次打开工作表时平均有 1K 条记录并刷新..我确信目标表有足够的行..

以上是关于通过 VBA 将 XML 导入 EXCEL 不会刷新的主要内容,如果未能解决你的问题,请参考以下文章

通过 VBA 将查询从 Access 导入 Excel 并删除单个单元格

如何用VBA将excel的数据导入到另外个excel中

将 Microsoft Project 对象库导入 Excel VBA 项目

VBA实现将EXCEL数据导入WORD表格

VBA 将 Excel 文件从 Access 保存为 .xls

使用 VBA 将 Excel 数据导入 SQL Server 表