2016-08-06 7 views
2

同じフォルダ内のすべてのファイル名をリストするコードを記述していますが、コードも機能していますが、1つのファイルを残してしまうという問題があります。フォルダに10個のファイルがあり、マクロを実行すると、直前のウィンドウに9個の名前しか印刷されていないとします。 Plsは私がDIR関数がすべてのファイル名を出力しない

Option Explicit 

Sub test() 
    Dim curpath As String, path As String 

    path = "H:\NAFIS STUDY\Excel vba\New Folder\" 

    curpath = Dir(path) 

    Do Until curpath = vbNullString Or curpath = "" 
     Debug.Print Dir() 
    Loop 

End Sub 

以下のコードで間違っているところ私はすなわちデバッグ出力に書き込むために、あなたの変数curpathを使用し、あなたはおそらくこのような何かをしたい、私は正しく

答えて

2

DIR機能を使用していないと思う私を修正し、次の戻り値Dirを割り当てます。あなたがループを終了するには、両方 `curpath = vbNullString`と` curpathの必要は=「」がありませんcurpath

Option Explicit 

Sub test() 
    Dim curpath As String, path As String 

    path = "c:\\temp\\" 

    curpath = Dir(path) 

    Do Until curpath = vbNullString Or curpath = "" 
     Debug.Print curpath 
     curpath = Dir() 
    Loop 

End Sub 
+1

プリントアウトしたことがないよう、元のコードではDir(path)の最初の戻り値は印刷されませんでした。 –

+0

ええ、しかし私は彼の全体のコードをリファクタリングするのではなく、予期しない結果につながる間違いを示したいと思っていました。良い点だが – DAXaholic

+1

個人的な好み私はそれを削除したが、心配はない –

関連する問題