我正在尝试编写一个宏,该宏将具有预定义列的Excel文件中的特定XML数据导入到现有XML映射中。并非所有XML数据都应该导入到工作表中。我以前在下面没有问题地使用过这种方法。但是,我注意到该宏花了很长时间才能运行,然后才意识到,包含XML数据的表在XML数据结束之后一直插入空行,一直到Excel工作表的结束行。当我手动导入时,不会发生这种情况。
如何确保保存xml数据的表没有扩展到Excel工作表的末尾?我在俯视什么吗?
我的宏代码:
Sub importXML()
'Define worksheets
Dim ws1 As Worksheet: Set ws1 = Sheets("XML_data")
Application.ScreenUpdating = False
'Finding last row in tabel
lastRow = ws1.Range("A1").Offset(ws1.Rows.Count - 1, 0).End(xlUp).Row
'Deleting old xml map data
If lastRow > 2 Then
ws1.Range("A2:H" & lastRow).EntireRow.Delete
End If
'Define separators and apply.
Application.DecimalSeparator = "."
Application.ThousandsSeparator = ","
Application.UseSystemSeparators = False
fileToOpen = Application.GetOpenFilename("XML Files (*.xml), *.xml", , "Import XML", , True)
Application.DisplayAlerts = False
If IsArray(fileToOpen) Then
For Each fil In fileToOpen
ActiveWorkbook.XmlMaps("myXmlMap").Import URL:=fil
Next fil
Else
Exit Sub
End If
Application.DisplayAlerts = True
Application.UseSystemSeparators = True
End Sub