Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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_Converter - Fatal编程技术网

使用vba将多个xml自动转换为excel

使用vba将多个xml自动转换为excel,xml,vba,excel,converter,Xml,Vba,Excel,Converter,好吧,首先:我是一个十足的VBA傻瓜。我已经尝试破解这段代码好几个小时了,我认为深入了解vba工作原理的最好方法是召集军队。我希望没有人因此而生气 这就是我想做的: a) 逐个打开文件夹中的所有xml文件 b) 将它们转换为excel文件 c) 然后将它们逐个保存为另一个文件夹中的excel文件 我目前掌握的代码如下: Sub xmltoxl() Dim fs As FileSearch Dim i As Integer Dim wbk As Workbook Dim s As Integer

好吧,首先:我是一个十足的VBA傻瓜。我已经尝试破解这段代码好几个小时了,我认为深入了解vba工作原理的最好方法是召集军队。我希望没有人因此而生气

这就是我想做的: a) 逐个打开文件夹中的所有xml文件 b) 将它们转换为excel文件 c) 然后将它们逐个保存为另一个文件夹中的excel文件

我目前掌握的代码如下:

Sub xmltoxl()
Dim fs As FileSearch
Dim i As Integer
Dim wbk As Workbook
Dim s As Integer

Set fs = Application.FileSearch

With fs
    .LookIn = ThisWorkbook.Path
    .Filename = "*.xml"
    For i = 1 To .Execute()
        Set wbk = Workbooks.OpenXML(.FoundFiles(i))
        s = 1
   ChDir "C:\Users\Seeb\Desktop\Volkskrant\2013_archiefb"
    ActiveWorkbook.SaveAs Filename: (s & ".xls")
    s = s + 1
    Next i
End With

End Sub
未经测试:

Sub xmltoxl()
Dim f As String
Dim wbk As Workbook
Dim s As Integer

f = Dir(ThisWorkbook.Path & "\*.xml")
s = 0

Do While Len(f)>0
    s = s + 1
    Set wbk = Workbooks.OpenXML(ThisWorkbook.Path & "\" & f)
    wbk.SaveAs Filename:="C:\Users\Seeb\Desktop\Volkskrant\2013_archiefb" & s & ".xls"
    wbk.Close False
    f = Dir() 
Loop


End Sub

经过一些改变,是的,它成功了。至少,进行了一半(我将重做下半部分)。谢谢你,蒂姆

Sub xmltoxl()
Dim f As String
Dim wbk As Workbook
Dim s As Integer

f = Dir("C:\Users\Seeb\Desktop\Volkskrant\2013_archief" & "\*.xml")
s = 0

Do While Len(f) > 0
    s = s + 1
    Set wbk = Workbooks.OpenXML("C:\Users\Seeb\Desktop\Volkskrant\2013_archief" & "\" & f)
    wbk.SaveAs Filename:="C:\Users\Seeb\Desktop\Volkskrant\2013_archiefb\" & s & ".xls"
    wbk.Close False
    f = Dir()
Loop

End Sub

在哪里失败?什么不起作用?(首先)它给出了一个关于如何保存工作簿的“编译错误:语法错误”(另存为行)
FileSearch
自2007版以来已从Excel中删除。要使用命名参数,您需要在参数名称和值之间设置
:=
,以便:
ActiveWorkbook.SaveAs文件名:=(s&“.xls”)