2017-01-19 54 views
1

我打算编写的宏必须处理文件夹中给定的csv文件,然后转换为xls格式。在文件夹中查找由excel宏创建的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 

回答

0

你缺少一个*XlsFile = Dir(fpath & ".xls")

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

+0

很高兴我能帮助!请花一点时间接受答案,并参观了解SO如何工作:http://stackoverflow.com/tour – R3uK

相关问题