XML数据导入后Excel 2003 VBA错误1004

我构build了一个macros,它使用不同的XMLinput文件,并将每个文件导入到工作簿中的不同工作表中。 然后保存工作簿。 这对于成百上千的用户来说是98%的工作时间,但是当用“错误1004:Microsoft Office Excel不能访问文件”C:\ SymmPiT“保存工作簿时有时会失败。

我发现它涉及到当某个XML文件太大,导致Excel导入“ImportDisks:”部分。 尝试将SYMDISK.XML文件手动导入到空白工作簿(使用“数据导入 – XML”)会导致Excel错误“XML导入错误:某些数据无法导入”。

我正在尝试让Excel VBA忽略此XML导入错误。 这在macros的阶段工作,但在代码中进一步保存工作簿(以红色标记)时失败。

即使存在导入错误,如何在保存文件时避免Excel“barfing”? 或者可以在导入之前检查XML文件,所以我可以避免尝试导入?

代码exceprts在下面,非常感谢回复! 🙂

Sub ImportData() On Error GoTo SPErrorHandler Application.DisplayAlerts = False Sheets("SymmPiT").Select Range("F15").Select Dim SaveName As String Dim Section As Integer ImportDisks: Section = 7 On Error GoTo ImportLocks Sheets.Add.Name = "Disks" Application.ScreenUpdating = False Range("A2").Select ActiveCell.FormulaR1C1 = "from symdisk list -v" If (Dir("C:\SymmPiT\SYMDISK.XML") > "") Then ActiveWorkbook.XmlImport URL:="C:\SymmPiT\SYMDISK.XML", ImportMap:=Nothing, overwrite:=True, Destination:=Range("$A$4") ActiveWorkbook.XmlMaps("SymCLI_ML_Map").Delete Set Contents = Worksheets("Disks").Range("A5") If Contents.Text = "" Then MsgBox "Information" & vbNewLine & vbNewLine & "Disks data file has not imported, too many rows of data for Excel 2003" End If Else Range("A4").Select ActiveCell.FormulaR1C1 = "No Disk Data file SYMDISK.XML found" End If Range("A2").Select Application.ScreenUpdating = True ImportLocks: ' Code continues here, removed from this post…. Application.ScreenUpdating = True SaveAsExcelFile: ' SaveAsExcelFile Section = 43 On Error GoTo SPErrorHandler SaveName = Worksheets("SymmPiT").Range("F19").Text ' Clear any outstanding error Err.Clear ' Save output file ActiveWorkbook.SaveAs Filename:="C:\SymmPiT\" & SaveName & ".xls" Range("F15").Select