2017-01-19 81 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

相關問題