1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

[레벨:30]아별

2012.10.08 19:33

광택입니다님..

안녕하세요?

 

일전에 알려드린 자료를 조금만 수정하면 원하시는 것을 구현하실 수 있었을텐데요..

강좌파일 다운로드 링크 : http://www.iexceller.com/MyXls/Lectures/VisualBasic/VB0056.zip

 

좀 더 공부를 하셔야할 것 같습니다.

 

 

이번에는 그냥 만들어드리지만..

다음부터는.. 이렇게 만들었는데.. 이런 부분이 안된다는 식으로 질문해주시기 바랍니다.

그래야 실력이 향상될 수 있습니다.

 

 

다운받기 : abyul.com_SearchingFiles_20121008-1.zip

 

 

 

'### 재귀호출 함수를 이용하여 하위폴더의 파일까지 검색이 가능한 파일 검색 로직입니다.

'### http://abyul.com/

Option Explicit
Dim r As Long
Dim rngTarget As Range

 

Sub ab_SearchSubFoldersByRecursiveCall3()
    Dim strFolder As String
    strFolder = ThisWorkbook.Path & "\"
    '### 상위 폴더셀에 아무 값도 넣지 않으면 현재 파일이 있는 폴더 하위 폴더 전체를 검색합니다.
    If Range("B3") <> "" Then strFolder = strFolder & Range("B3") & "\"
    '### 하위 폴더셀에 아무 값도 넣지 않으면 2012년 전체를 검색합니다.
    If Range("C3") <> "" And Range("C3") <> "전체" Then strFolder = strFolder & Range("C3") & "\"
    Set rngTarget = Range("B7")
    Range(rngTarget, rngTarget.End(xlDown)).ClearContents
    r = 0
    Call ab_RecursiveCall3(strFolder)
End Sub

  

Sub ab_RecursiveCall3(Path As String)
    Dim i As Integer
    Dim intFolder As Integer
    Dim strFile As String
    Dim strFolder() As String
    Dim strTemp As String
    Dim Msg As String
    Application.DisplayStatusBar = True
    strFile = Dir(Path)
   
    Dim cnt As Long: cnt = 0
    Do While strFile <> ""
        Application.StatusBar = "검색 중... " & Path & strFile
        If InStr(strFile, Range("D3")) > 0 Then
            ActiveSheet.Hyperlinks.Add Anchor:=rngTarget.Offset(r, 0), Address:=Path & strFile, TextToDisplay:=Path & strFile
            r = r + 1
        End If
        strFile = Dir()
    Loop
   
    strFile = Dir(Path, vbDirectory)
    Do While strFile <> ""
        If strFile <> "." And strFile <> ".." Then
            If GetAttr(Path & strFile) = vbDirectory Then
                intFolder = intFolder + 1
                ReDim Preserve strFolder(intFolder)
                strFolder(intFolder) = Path & strFile
            End If
        End If
        strFile = Dir()
    Loop
   
    For i = 1 To intFolder
        Call ab_RecursiveCall3(strFolder(i) & "\")
    Next i
    Application.StatusBar = ""
End Sub

 

 

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)