Dim arr(), brr, a
Sub 按钮1_Click()
Application.ScreenUpdating = False
Set fso = CreateObject("scripting.filesystemobject")
a = 0
Call Getfd(ThisWorkbook.Path, fso)
With ActiveSheet
brr = .Cells(1, 2).Resize(.Cells(Rows.Count, 2).End(3).Row)
For j = 2 To UBound(brr)
If Len(brr(j, 1)) > 0 Then
For i = 1 To UBound(arr, 2)
If InStr(arr(2, i), brr(j, 1)) > 0 Then
ActiveSheet.Hyperlinks.Add Anchor:=.Cells(j, 2), Address:=arr(1, i)
End If
Next i
End If
Next j
End With
Application.ScreenUpdating = True
End Sub
Sub Getfd(ByVal pth, fso)
Set ff = fso.getfolder(pth)
For Each f In ff.Files
a = a + 1
ReDim Preserve arr(1 To 2, 1 To a)
arr(1, a) = f
arr(2, a) = f.Name
Next f
For Each fd In ff.subfolders
Call Getfd(fd, fso)
Next fd
End Sub |