将超链接中的锚点设置为范围地址偏移量

问题描述 投票:0回答:1

我有一个执行以下过程的宏:

  1. “公司名称”输入到“公司列表”工作表的单元格 C2 中。
  2. 在“公司列表”中按下了宏按钮。
  3. 然后将“公司名称”复制并按字母顺序插入到“公司列表”表的 B 列中。
  4. 工作表“公司名称”是使用“公司名称”从模板创建的。

需要使用 Hyperlinks.Add 在“公司列表”工作表的 C 列中创建指向“公司名称”工作表的超链接。我相信我必须找到“公司列表”中插入的“公司名称”的地址,然后将该地址偏移到 C 列,然后使用调整后的地址创建超链接。我尝试的代码如下:

Sub Button1_Click()
    Application.ScreenUpdating = False
    Dim companyList As Worksheet
    Dim companyName As Range
    Dim companies As Range
    Dim lPosition As Long
    Dim companyNameAddress As Range
    Dim companyOverview As Range
    
    Set companyList = ActiveSheet
    Set companies = companyList.Range("B5:B" & Rows.Count)
    Set companyName = companyList.Range("C2")
        If Not IsEmpty(companyName.Value) Then
            lPosition = Application.WorksheetFunction.Match(CStr(companyName.Text), companies, 1)
            companies(lPosition + 1).Insert
            companies(lPosition + 1).Value = CStr(companyName.Text)
            '*** CREATE NEW COMPANY SHEET ***
                '--- Do Stuff ---
                
            '*** FIND CELL ADDRESS OF NEW COMPANY IN COMPANIES ***
            Set companyNameAddress = companyList.Range("B5:B" & Rows.Count).Find(CStr(companyName.Text), lookat:=xlPart)
            Set companyOverview = companyNameAddress.Offset(0, 1)
                
            '*** INSERT HYPERLINKS FOR COMPANY SHEETS ***
            With companyList
                Hyperlinks.Add Anchor:=.Range(companyOverview), _
                               Address:="", _
                               SubAddress:=" '" & CStr(companyName.Text) & "'!B2", _
                               TextToDisplay:="Overview"
            

            End With
            companyList.Range("C2").ClearContents
        
        Else
            MsgBox "Enter Company Name"
        End If
        
    Application.ScreenUpdating = True
End Sub

这会引发 1004 错误:对象“_Worksheet”的方法“Range”失败。如何找到超链接需要到达的位置,然后将该单元格(范围)插入到 Hyperlinks.Add 函数的锚点中?我认为这就是问题所在。

excel vba hyperlink
1个回答
0
投票
With companyList
        .Hyperlinks.Add Anchor:=companyOverview, _
            Address:="", _
            SubAddress:="'" & companyName.Text & "'!B2", _
            TextToDisplay:="Overview"
    End With
© www.soinside.com 2019 - 2024. All rights reserved.