2017-01-19 5 views
1

書きたいと思うマクロは、指定されたcsvファイルをフォルダ内で処理してからxls形式に変換する必要があります。フォルダ内のExcelマクロで作成したxlsファイルを見つける

次に、作成したすべてのxlsファイルを同じフォルダに配置し、それらを1つの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

関連する問題