2016-10-31 20 views
1

セルB6に格納されているアドレスにフォルダを作成します。アドレスは次のとおりです。H:\ jpDesk \デスクトップ\テストプロジェクトExcel VBA MkDir実行時エラー

Sub SetUpLocalFolder() 

Workbooks("Robot Model.xlsm").Activate 
LocalPath = ActiveWorkbook.Worksheets("Preparation").Range("B6").Value 
Debug.Print LocalPath 
If Right(LocalPath, 1) <> "\" Then LocalPath = LocalPath & "\" 

'check if the folder is already created 
If Len(Dir(""" & LocalPath & """, vbDirectory)) = 0 Then 
    MkDir """ & LocalPath & """ 'Error shows here 
    MsgBox ("The local folder is successfully created.") 
End If 

End Sub 

エラーは、「実行時エラー 『76』パスが見つかりません。」と表示さしかします。Debug.Printは、正しいアドレスを示しています。 コードを MkDir "H:¥jpDesk¥Desktop¥Test Project"に変更すると、すべて動作します。誰かが私に理由を教えてもらえますか?

+2

私は非常代わりに 'Scripting.FileSystemObject'を使用することをお勧めしたい – Slai

+0

「「」は必要ない - 。。!。それは、はるかに堅牢古代のレガシーファイルの処理方法よりも – Comintern

+0

右すなわちおかげで – vivi11130704

答えて

2

"&"と "&" ""は必要ありません。

ORフォルダが既に存在します。

+0

おっとそうですしかし、なぜなら、すべてのオンラインの例は、パスアドレスを二重引用符で囲んでいます。 – vivi11130704

+1

@ vivi11130704 - オンラインの例はおそらく 'Dir(" C:\ Temp "、vbDirectory)'のようなものです。 '' C:\ Temp '' 'C:\ Temp'という文字を含むメモリ位置を参照する文字列リテラルです。あなたの場合、文字列' C:\ Temp'を含むメモリ位置を参照する 'LocalPath'という文字列変数があります。この例の文字列 '' C:\ Temp ''を 'LocalPath'の変数に置き換えてください。 – YowE3K

+0

あなたの言うことが分かります。 – vivi11130704

関連する問題