【问题标题】:Find xls files created by excel macro in a folder在文件夹中查找由 excel 宏创建的 xls 文件
【发布时间】:2017-01-19 08:56:59
【问题描述】:

我打算编写的宏必须处理文件夹中给定的 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

【问题讨论】:

    标签: vba excel csv


    【解决方案1】:

    您在XlsFile = Dir(fpath &amp; ".xls") 中缺少*

    应该是XlsFile = Dir(fpath &amp; "*.xls")

    【讨论】:

    • 很高兴我能帮上忙!请花一点时间接受答案并参观了解 SO 的工作原理:stackoverflow.com/tour
    猜你喜欢
    • 2020-06-03
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多