View Single Post
 
Old 04-20-2022, 07:42 AM
p45cal's Avatar
p45cal p45cal is offline Windows 10 Office 2019
Expert
 
Join Date: Apr 2014
Posts: 956
p45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond reputep45cal has a reputation beyond repute
Default

Code:
Sub GetAllFiles()
Dim pth$, arr, i%, r%, hlink
With Application.FileDialog(msoFileDialogFolderPicker)
  If .Show = -1 Then
    pth = .SelectedItems(1)
  Else
    MsgBox "您没有选择任何文件夹!", vbCritical: Exit Sub
  End If
End With
ReDim arr(1 To 6, 1 To 1)
arr(1, 1) = "文件名称"
arr(2, 1) = "文件位置"
arr(3, 1) = "创建日期"
arr(4, 1) = "修改日期"
arr(5, 1) = "文件类型"
arr(6, 1) = "文件大小"
Getfd pth, arr
arr = Application.WorksheetFunction.Transpose(arr)    '文件信息已保存在arr数组中
'实际使用时可不输出到工作表,直接在数组arr中查询需要的文件信息。以下10行可删除
For i = 2 To UBound(arr)
  hlink = arr(i, 2)
  arr(i, 1) = "=hyperlink(""" & hlink & """,""" & arr(i, 1) & """)"
  arr(i, 2) = "=hyperlink(""" & hlink & """,""" & hlink & """)"
Next i
Application.ScreenUpdating = False
With ActiveSheet
  .UsedRange.Clear
  .Cells(1, 1).Resize(UBound(arr, 1), UBound(arr, 2)) = arr
  r = .Range("a" & Rows.Count).End(3).Row
  .Range("a1:f" & r).Borders.LineStyle = xlContinuous
  .Range("a1:f" & r).Borders.Weight = xlThin
End With
Application.ScreenUpdating = True
[a1].CurrentRegion.AutoFilter Field:=1    '输出结果到工作表,并启用筛选模式
MsgBox "文件已全部获取!点『确定』键结束"
End Sub
Reply With Quote