2016-10-31 2 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

"" " – Slai

+0

"대신 "Scripting.FileSystemObject"를 사용하는 것이 좋습니다. 기존의 파일 처리 방법보다 훨씬 강력합니다. – Comintern

+0

고마워요! – vivi11130704

답변

2

& 및 & "" "이 필요하지 않으므로.

또는 해당 폴더가 이미 있습니다.

+0

맞아요. 모든 온라인 예제는 경로 주소를 큰 따옴표로 묶어 둔다. – vivi11130704

+1

@ vivi11130704 - 온라인 예제는 아마도'Dir ("C : \ Temp", vbDirectory)'와 같은 것을 말하고있다. "C : \ Temp"' 'C : \ Temp' 문자를 포함하는 메모리 위치를 참조하는 문자열 리터럴입니다. 귀하의 경우에는'C : \ Temp' 문자가 포함 된 메모리 위치를 참조하는'LocalPath'라는 문자열 변수가 있습니다. 예제에서 "C : \ Temp"라는 문자를'LocalPath'의 변수로 바꾸십시오. – YowE3K

+0

당신의 말을 봅니다. 고마워요! – vivi11130704