我查了几个教程和类似的问题,但是我无法解决我的问题。在Excel中打开一个Xml表格
我可以做我所需要的,但这个选项打开一个新的工作簿,然后将所有内容复制到macros.xlsm表Lote。
如何直接在具有宏的Excel工作簿上执行此操作。
Sub Import1()
Dim wb As Workbook
Dim TheFile As String
Dim instance As XPath
Dim Map As XmlMap
Dim XPath As String
Dim Book As String
Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
clipboard.SetText ""
clipboard.PutInClipboard
ChDir "C:\rwindows"
TheFile = Application _
.GetOpenFilename("XML Files (*.xml), *.xml", , "Import XML", , False)
Set wb = Workbooks.OpenXML(Filename:=TheFile, LoadOption:=xlXmlLoadImportToList)
With ActiveWorkbook.XmlMaps("evs_rpb_Mapa")
.ShowImportExportValidationErrors = False
.AdjustColumnWidth = True
.PreserveColumnFilter = True
.PreserveNumberFormatting = True
.AppendOnImport = True
End With
fileToOpen = Application _
.GetOpenFilename("XML Files (*.xml), *.xml", , "Import XML", , True)
Application.DisplayAlerts = False
If IsArray(fileToOpen) Then
For Each fil In fileToOpen
ActiveWorkbook.XmlMaps("evs_rpb_Mapa").Import URL:=fil
Next fil
Else
Exit Sub
End If
Book = ActiveWindow.Caption
'Windows("Livro1").Activate
Windows(Book).Activate
Columns("A:AL").Select
Selection.Copy
Windows("Macros.xlsm").Activate
Columns("A:AL").Select
ActiveSheet.Paste
Windows(Book).Activate
ActiveWindow.Close
Columns("A:AL").Select
Set clipboard = New MSForms.DataObject
clipboard.SetText ""
clipboard.PutInClipboard
Application.DisplayAlerts = True
End Sub
欢迎StackOverflow上。这会让你熟悉如何提出一个问题:http://stackoverflow.com/help/how-to-ask –
请发布示例XML,以显示如何构建XmlMap并将XML数据反复追加到它。 – Parfait
我无法添加xml文件,我没有该公司的许可。我编辑代码,现在我只需要在macros.xlsm中执行此操作,而不是在其他工作簿中执行此操作,然后复制所有信息 –