在文件夹中查找由excel宏创建的xls文件

时间:2017-01-19 08:56:59

标签: excel vba excel-vba csv

我打算编写的宏必须处理文件夹中给定的csv文件,然后转换为xls格式。

然后我想在同一个文件夹中找到所有创建的xls文件,并将它们合并到一个xlsx文件中。

第一个循环运行正常(找到文件夹中的所有csv文件,处理它们并将它们转换为xls格式)。

但是,当我尝试查找所有xls文件时,它返回空。我也尝试调试和添加手表。它返回空字符串。

我不确定我的代码有什么问题。请参阅下文。

    Sub Macro2()

    fname = "Consolidated  Excel Spreadsheet" & ".xlsx"
    fpath = "C:\Path\"
    StrDstFile = fpath & fname
    Set objWorkbook = objExcel.Workbooks.Add()
    ActiveWorkbook.SaveAs StrDstFile, FileFormat:=51
    Set DstWb = ActiveWorkbook
    CsvFile = Dir(fpath & "*.csv")
    ' This runs absolutely fine.
    Do While CsvFile <> ""
        StrSrcFile = fpath & CsvFile
        Set SrcWb = Workbooks.Open(StrSrcFile)
        SrcWb.Activate
        ActiveWorkbook.SaveAs Replace(SrcWb.FullName, ".csv", ".xls"), FileFormat:=xlExcel8
        SrcWb.Close True
        Set SrcWb = Nothing
        CsvFile = Dir
    Loop
    XlsFile = Dir(fpath & ".xls")
    ' This does not find any xls files in the directory, even though the files exist here
    Do While XlsFile <> ""
        StrSrcFile = fpath & XlsFile
        Set SrcWb = Workbooks.Open(StrSrcFile)
        SrcWb.Activate
        XlsFile = Dir
    Loop

End Sub

1 个答案:

答案 0 :(得分:0)

{1}}

中缺少*

应为XlsFile = Dir(fpath & ".xls")