Excel XML到CSV转换器VBA

Excel XML到CSV转换器VBA,excel,xml,vba,Excel,Xml,Vba,该程序适用于XLS,但不适用于XML 任务:查找扩展名为.xml的饼图文件,并将编辑后的文件转换为.csv 问题:我所有的东西都在工作、转换和保留。但是我告诉他删除空格、删除空行的条件是行不通的。它从表文件中为我保存一个空的.csv文件 “在目录中查找xml文件 如果不是curfold,那就什么都不是了 对于curfold.Files中的每个fil 如果InStr(1,fil.Name,“.xml”,vbTextCompare)>0和(InStr(1,fil.Name,“PIE”,vbTextC

该程序适用于XLS,但不适用于XML

任务:查找扩展名为.xml的饼图文件,并将编辑后的文件转换为.csv

问题:我所有的东西都在工作、转换和保留。但是我告诉他删除空格、删除空行的条件是行不通的。它从表文件中为我保存一个空的.csv文件

“在目录中查找xml文件
如果不是curfold,那就什么都不是了
对于curfold.Files中的每个fil
如果InStr(1,fil.Name,“.xml”,vbTextCompare)>0和(InStr(1,fil.Name,“PIE”,vbTextCompare))>0,那么
d=文件名
设置wb=objEX.Workbooks.Open(路径&“\”&d)
如果指令(1,文件名,“PIE”,vbTextCompare)>0,则
'从数量中删除空格
工作分解表(1).列(“C:C”).NumberFormat=“0.00”
工作分解表(1).列(“D:D”).NumberFormat=“0.00”
“替换”;/“打开”
wb.Sheets(1).Range(“K1”).value=wb.Sheets(1).Range(“K1”).value&“;”
工作分解表(1).范围(“A:K”).替换“,”
wb.Sheets(1).范围(“A1”).值=wb.Sheets(1).范围(“A1”).值和“/”
wb.表格(1).范围(“A:A”)。替换“/”,”
“wb.Sheets(1).范围(“H:H”)。替换为“””
'删除空行
工作分解表(1)。行(“1:3”)。删除
su=1
'删除列L和M
wb.表(1).列(“M:M”)。删除
工作分解表(1).列(“L:L”)。删除
nRow=1
'删除文件末尾的多余空行
当wb.Sheets(1).Cells(nRow,1).Value“”时执行此操作
nRow=nRow+1
环
工作表(1).行(nRow&“:”&nRow+20000).删除

这是.csv中正确的Converter.xml

Sub XMLTOCSV()
Dim f           As String
Dim p           As String
Dim s           As Integer

p = Environ("USERPROFILE") & "\Downloads" & "\"
f = Dir(p & "*.xml")
s = 0

Application.ScreenUpdating = False
    Do While Len(f) > 0
        s = s + 1
        ConvertXMLtoCSV p & f, p & "Test" & s & ".csv"
        f = Dir()
    Loop
Application.ScreenUpdating = True
End Sub

Sub ConvertXMLtoCSV(xmlFile, csvFile)
Dim xlApp       As Application
Dim xlBook      As Workbook

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.OpenXML(xmlFile, 2)
xlBook.SaveAs csvFile, 6
xlBook.Close False
xlApp.Quit
End Sub