使用vba将XML导入Excel时出现数据以文本形式导入的错误

问题描述 投票:0回答:1

我正在尝试编写一个vba代码将XML文件导入到excel中,以便使用vba对结果表进行其他修改,但它总是返回一个错误,“某些数据已作为文本导入”,我必须按“确定”为了让代码继续,我尝试插入错误处理程序,但没有成功

我尝试过的代码

Sub Import()
    Dim XMLFileName As String
    Dim SavePath As String
    Dim WB As Workbook
    

    XMLFileName = "D:\Reservation Statistics.xml"
    
    SavePath = "D:\Reservation Statistics.xlsx"
    
    Application.ScreenUpdating = False
    
    Set WB = Workbooks.Add
    
    WB.XmlImport Url:=XMLFileName, ImportMap:=Nothing, Overwrite:=True, Destination:=WB.Sheets(1).Range("A1")
    
    WB.SaveAs SavePath, FileFormat:=xlOpenXMLWorkbook
        
    WB.Close SaveChanges:=False
    
    Application.ScreenUpdating = True
    
End Sub

这就是错误

为了修复稍后存储为文本的数字,我使用了此代码。不知道这是否是正确的方法

Sub txttonum()

    Dim rngRange As Range
    Set rngRange = ActiveSheet.Range("A1:A20")
    rngRange.Value = rngRange.Value * 1
End Sub

提前感谢您的任何提示。

excel vba office365
1个回答
0
投票

我可以通过使用 Application.DisplayAlerts = False 来忽略/隐藏错误,所以最终代码是

Sub Import1()
Dim XMLFileName As String
Dim SavePath As String
Dim WB As Workbook

XMLFileName = "D:\Reservation Statistics.xml"

SavePath = "D:\Reservation Statistics.xlsx"

Application.ScreenUpdating = False

Application.DisplayAlerts = False

Set WB = Workbooks.Add

WB.XmlImport Url:=XMLFileName, ImportMap:=Nothing, Overwrite:=True, Destination:=WB.Sheets(1).Range("A1")

WB.SaveAs SavePath, FileFormat:=xlOpenXMLWorkbook
    
WB.Close SaveChanges:=False

Application.DisplayAlerts = True

Application.ScreenUpdating = True

结束子

© www.soinside.com 2019 - 2024. All rights reserved.