2014-03-26 1 views
0

문제점을 설명하기 위해 예제를 작성했습니다.SubFolders.Item (I) 오류 코드 800A0005 Runtimeerror 무효 프로 시저 호출

내가 작업하는 개발 환경에서 '각'구성을 사용할 수 없습니다. 따라서 'item'-iteration을 사용해야합니다.

ShowFolderList1은 정상적으로 작동하지만 ShowFolderList2가 오류를 생성합니다.

구문을 수정하도록 도와 줄 수 있습니까?

ShowFolderList1 ("C : \ Windows")는 지정된 디렉토리에있는 폴더 목록을 나에게 보여줍니다. ShowFolderList2 ("C : \ Windows")는 오류 코드 800A0005를 제공합니다. "F1 = FOL.SubFolders.Item (i)"에서 Runtimeerror invalid Procedure Call을 호출합니다.

서브 ShowFolderList1 (folderspec)

Set FSO = CreateObject("Scripting.FileSystemObject") 

Set FOL = FSO.GetFolder(folderspec) 

s = "" 
For Each F1 in FOL.SubFolders 
    s = s & F1.Name & vbCrLf 
Next 
MsgBox(s) 

최종 서브

서브 ShowFolderList2 (folderspec)

Set FSO = CreateObject("Scripting.FileSystemObject") 

Set FOL = FSO.GetFolder(folderspec) 

s = "" 
For i = 0 To FOL.SubFolders.Count-1 
    F1 = FOL.SubFolders.Item(i) 
    s = s & F1.Name & vbCrLf 
Next 
MsgBox(s) 

최종 서브 F1 개체를 보유한다 같이

답변

2

,

233,는 두번째 생각

Set F1 = FOL.SubFolders.Item(i) 

이어야 :

오류에 대한 실질적인 이유는 다음과 폴더 오브젝트에는 Item 방법이 없다. For Each을 통해서만 임의로 폴더를 트래버스 할 수 없습니다.