我对VBA的能力非常有限,无法复制别人的辛勤工作并修补它以使其能够满足我的需求。 我一直在寻找不同的网站,并玩了很多选择。我需要搜索网络文件夹 - 将文件夹中的所有文件与存储在A列中的文件编号匹配,并创建指向这些文件的超链接,并在A列中维护文件名。 我可以“找到我需要的东西,但却无法在网上混合这些来创造我的答案。 电子表格每周添加一次,新数据添加到现有数据中,因此A列中的文件名数量是可变的。
搜索的任何文件类型/扩展名是否也可以是变量,或者文件类型必须是一种类型,例如。 msg或pdf?
以下代码只是一次失败的努力
Sub Hyperlinks()
'
Const sFILENAME_CELLS As String = "A2:A3200"
Const sLINKS_COLUMN As String = "A"
Const sFOLDER_NAME As String = "C:\Users\*****\Desktop\Benny PDFs"
Const sSHEET_NAME As String = "Projects"
Dim rFilenameCells As Range
Dim rFilenameCell As Range
Dim sFilename As String
Dim sFullName As String
Dim wksTarget As Worksheet
Dim iRowNo As Integer
Set wksTarget = ThisWorkbook.Sheets(sSHEET_NAME)
Set rFilenameCells = wksTarget.Range(sFILENAME_CELLS)
For Each rFilenameCell In rFilenameCells.Cells
sFilename = rFilenameCell.value
If sFilename <> vbNullString Then
sFullName = sFOLDER_NAME & "\" & sFilename
' Check that the file exists in the specified folder
If Dir$(sFullName) = sFilename Then
iRowNo = rFilenameCell.row
With wksTarget
.Hyperlinks.Add Anchor:=.Range(sLINKS_COLUMN & iRowNo), _
Address:=sFullName, _
TextToDisplay:=sFilename
End With
End If
End If
Next rFilenameCell
End Sub
答案 0 :(得分:0)
获取运行时错误9:下标超出范围
原因可能是您的工作簿中没有Projects
表。
也改变这一行:
Const sLINKS_COLUMN As String = "A"
到A之后的其他东西,因为像这样A2:A3200
中的文件名将替换为文件的超链接。