- 帖子
- 41
- 主題
- 0
- 精華
- 0
- 積分
- 79
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2010
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2014-4-1
- 最後登錄
- 2016-2-17
|
本帖最後由 no3-taco 於 2015-6-16 04:36 編輯
玩玩看,簡化過的遞迴版- Sub 這裡執行()
- Dim rw As Long, ilevel As Long: rw = 1: ilevel = 0
- GetSubs "C:\Users\Administrator\Desktop" & "\", rw, ilevel '呼叫副程式"#修改路徑#
- End Sub
- Sub GetSubs(sPath As String, rw As Long, ilevel As Long)
- Dim ary1() As String: ReDim ary1(0): Dim sName
- sName = Dir(sPath, vbDirectory)
- Do While sName <> ""
- On Error Resume Next '有錯誤跳過
- If sName <> "." And sName <> ".." And (GetAttr(sPath & sName) And vbDirectory) = vbDirectory Then
- 'If Err = 0 Then '沒有錯誤時
- ReDim Preserve ary1(UBound(ary1) + 1)
- ary1(UBound(ary1)) = sName
- End If ': End If
- sName = Dir
- Loop
- For i = 1 To UBound(ary1)
- rw = rw + 1
- GetSubs sPath & ary1(i) & "\", rw, ilevel + 1 '遞迴呼叫
- Next i
- sName = Dir(sPath)
- If Dir(sPath & [A1]) = [A1] Then
- Workbooks.Open sPath & [A1] '開啟檔案
- End
- End If
- End Sub
複製代碼 |
|