我已经有了一个宏,但是我还需要它来超链接U列中的文件以及A列中的文件列表。
这是我的代码,如何添加超链接功能? 我不介意我是否还要添加另一个模块。
Sub ListFilesAndSubfolders()
Dim FSO As Object
Dim rsFSO As Object
Dim baseFolder As Object
Dim file As Object
Dim folder As Object
Dim row As Integer
Dim name As String
'Get the current folder
Set FSO = CreateObject("scripting.filesystemobject")
Set baseFolder = FSO.GetFolder(ThisWorkbook.Path)
Set FSO = Nothing
'Get the row at which to insert
row = Range("A65536").End(xlUp).row + 1
'Create the recordset for sorting
Set rsFSO = CreateObject("ADODB.Recordset")
With rsFSO.Fields
.Append "Name", 200, 200
.Append "Type", 200, 200
End With
rsFSO.Open
' Traverse the entire folder tree
TraverseFolderTree baseFolder, baseFolder, rsFSO
Set baseFolder = Nothing
'Sort by type and name
rsFSO.Sort = "Type ASC, Name ASC "
rsFSO.MoveFirst
'Populate the first column of the sheet
While Not rsFSO.EOF
name = rsFSO("Name").Value
If (name <> ThisWorkbook.name) Then
Cells(row, 1).Formula = name
row = row + 1
End If
rsFSO.MoveNext
Wend
'Close the recordset
rsFSO.Close
Set rsFSO = Nothing
End Sub
Private Sub TraverseFolderTree(ByVal parent As Object, ByVal node As Object, ByRef rs As Object)
'List all files
For Each file In node.Files
Dim name As String
name = Mid(file.Path, Len(parent.Path) + 2)
rs.AddNew
rs("Name") = name
rs("Type") = "FILE"
rs.Update
Next
'List all folders
For Each folder In node.SubFolders
TraverseFolderTree parent, folder, rs
Next
End Sub
提示回复将非常受欢迎,因为我的项目截止日期只有几个星期。
谢谢你!答案 0 :(得分:0)
您必须将file.Path添加到您的记录集中,然后当您想要在循环中链接它们时尝试以下内容:
ActiveSheet.Hyperlinks.Add Anchor:=Cells(row, 1), Address:=file.Path, TextToDisplay:=name
修改强> 的
在rs.AddNew之后添加以下行:
rs("Path") = file.Path
再添加一个附加:
With rsFSO.Fields
.Append "Path", 200, 200
.Append "Name", 200, 200
.Append "Type", 200, 200
End With
现在改变这部分代码:
While Not rsFSO.EOF
name = rsFSO("Name").Value
path = rsFSO("Path").Value
If (name <> ThisWorkbook.name) Then
ActiveSheet.Hyperlinks.Add Anchor:=Cells(row, 1), Address:=path, TextToDisplay:=name
row = row + 1
End If
rsFSO.MoveNext
Wend
您可能需要在代码顶部添加定义,如下所示:
dim path as string