Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VBA从XML文件中提取数据到Excel工作表_Xml_Vba_Excel - Fatal编程技术网

如何使用VBA从XML文件中提取数据到Excel工作表

如何使用VBA从XML文件中提取数据到Excel工作表,xml,vba,excel,Xml,Vba,Excel,我使用以下代码将数据从XML提取到Excel。 但问题是,结果会在新工作簿“Book1”中打开。但我想在有此宏的同一Excel中的特定工作表中获取结果。 请注意,我不想在代码中创建模式,因为所有XML的模式都会更改。下面提到的代码不需要指定模式。它可以使用正确的列名将结果转储到新的Excel工作表中。因此,请让我知道如何在同一工作簿中的sheet2中获得结果 Sub ImportXMLtoList() Dim strTargetFile As String Application.Displ

我使用以下代码将数据从XML提取到Excel。 但问题是,结果会在新工作簿“
Book1
”中打开。但我想在有此宏的同一Excel中的特定工作表中获取结果。
请注意,我不想在代码中创建模式,因为所有XML的模式都会更改。下面提到的代码不需要指定模式。它可以使用正确的列名将结果转储到新的Excel工作表中。因此,请让我知道如何在同一工作簿中的
sheet2
中获得结果

Sub ImportXMLtoList()
 Dim strTargetFile As String
 Application.DisplayAlerts = False
 strTargetFile = "C:\example.xml"
 Workbooks.OpenXML Filename:=strTargetFile, LoadOption:=xlXmlLoadImportToList
 Application.DisplayAlerts = True

End Sub

我创建了一个简单的xmlmap。我需要一个代码将xml数据导入excel(右键单击xml导入),从xml或其他文件获取数据。我希望保留我创建的xmlmap,并将XLX中的数据替换为另一个xlm中的数据

'Select the file
Fname = Application.GetOpenFilename(FileFilter:="xml files (*.xml), *.xml", MultiSelect:=False)

'Check if file selected
If Fname = False Then
    Exit Sub
    Else
Workbooks.Open Filename:=Fname
End If

嘿,蒂姆,非常感谢。。。。。。。。。这起作用了:)。这是我的错,我没有正确指定工作表的名称。谢谢这是一个巨大的帮助。但对我来说,XLXmlLoadImportList导致了一个错误。我尝试了xlxmloadpromptuser,发现只读选项有效,我发现是
LoadOption:=xlxmloadopenxml
。这就行了。再次感谢。很好。。。即使在2021年,它仍然可以正常工作
'Select the file
Fname = Application.GetOpenFilename(FileFilter:="xml files (*.xml), *.xml", MultiSelect:=False)

'Check if file selected
If Fname = False Then
    Exit Sub
    Else
Workbooks.Open Filename:=Fname
End If