繁体   English   中英

获取运行时错误9:下标超出范围

[英]Getting run-time error 9: Subscript out of range

我在VBA上的能力仅限于复制他人的辛苦工作并对其进行修补以使其能够满足我的需要。 我一直在寻找不同的站点,并使用许多选项。 我需要搜索一个网络文件夹-将文件夹中的所有文件与存储在A列中的文件号进行匹配,并创建到这些文件的超链接,并在A列中维护文件名。我无法完全找到自己需要的东西无法将这些内容在线混合以创建我的答案。 电子表格会每周添加一次,而新数据会添加到现有数据中,因此A列中的文件名数量是可变的。

搜索到的任何文件类型/扩展名是否也可能是变量,或者该文件类型必须是一种类型的文件。 味精还是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

获取运行时错误9:下标超出范围

原因可能是您的工作簿中没有“ Projects表。 同时更改此行:

Const sLINKS_COLUMN     As String = "A"

到A之外的其他内容,因为这样A2:A3200的文件名将被超链接替换为该文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM