2013-04-22 2 views
0

다음 코드를 사용하려고합니다 (이 사이트에서 복사 됨). 그러나 .FoundFiles.count가되면 "Object variable 또는 With 블록 변수가 설정되지 않았습니다."라는 오류가 발생합니다. 나는이 문제에 대한 해결책을 몇 시간 동안 수색했다. 나는 누군가가 설명 할 수 있는지 궁금해. 감사.파일 찾기에서 .FoundFiles.count에 오류가 발생했습니다.

Sub RunCodeOnAllXLSFiles() 
Dim lCount As Long 
Dim wbResults As Workbook 
Dim wbCodeBook As Workbook 


Application.ScreenUpdating = False 
Application.DisplayAlerts = False 
Application.EnableEvents = False 

On Error Resume Next 
    Set wbCodeBook = ThisWorkbook 
     With Application.FileSearch 
      .NewSearch 
      'Change path to suit 
      .LookIn = "C:\MyDocuments\TestResults" 
      .FileType = msoFileTypeExcelWorkbooks 
      'Optional filter with wildcard 
      '.Filename = "Book*.xls" 
       If .Execute > 0 Then 'Workbooks in folder 
        For lCount = 1 To .FoundFiles.Count 'Loop through all 
         'Open Workbook x and Set a Workbook variable to it 
         Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0) 

         'DO YOUR CODE HERE 
         wbResults.Worksheets("Sheet1").Range("B7").NumberFormat = "YYYY.MM.DD" 
         wbResults.Close SaveChanges:=True 
        Next lCount 
       End If 
     End With 
On Error GoTo 0 
Application.ScreenUpdating = True 
Application.DisplayAlerts = True 
Application.EnableEvents = True 
End Sub 
+1

XL의 어떤 버전을 사용하고 있습니까? 'Application.FileSearch'는 2007 년 이상에서 지원되지 않습니다. –

+0

나는 2010 년을 사용하고 있습니다. 그래서 그것이 이유입니다. – user2200765

+0

예. 아래 답변을 참조하십시오. 'Dir' 기능을 사용해보십시오. 그것을 일부 논리와 결합하면 당신이 얻은 것을 얻을 수 있습니다. –

답변

1

Application.FileSearch 분명히 Excel 2007에서 사용되지 않습니다; 빠른 검색은 this one과 같은 몇 가지 대안을 제시했습니다. 조금 더 파고 가면 다른 솔루션도 나타납니다.

+0

+1 yup는 xl2007 +에서 사용할 수 없습니다. –

관련 문제