VBA:将单元格的超链接分配给 object

VBA: Assign hyperlink from cell to object

我的仪表板已锁定,因此同事们无法 change/delete 意外地进行任何操作。

不过,我需要他们能够将 hyperlink 添加到按钮。

我创建了一个 'Set Up' sheet,允许他们输入信息,然后这些信息将反映在仪表板上(KPI、标题等)。我希望这包括一个按钮,它将 'Set Up' 上 B5 的 hyperlink 分配给仪表板上的按钮(名为 'CoverageButton')。

这是设置 sheet,使用 Google 作为 link 中的支架:

我尝试使用的代码是:

Sub AssignURL()

Dim fileLink As String

Application.ScreenUpdating = False

With ActiveWorkbook

fileLink = Cells(5, 2) 'indicating where link is
    .Hyperlinks.Add Anchor:=.Shapes("CoverageButton"), _
    Address:=fileLink

End With

Application.ScreenUpdating = True

End Sub

我收到 run-time 错误“438” Object 不支持此 属性 或方法,突出显示以 .Hyperlinks 开头的行。使用 2016 版 Excel.

我是不是漏掉了什么?

Shapes 是作品sheet 的属性,不是工作簿。

此外,您没有正确限定单元格。

Sub AssignURL()
Dim fileLink As String

    Application.ScreenUpdating = False

    ' add link to 'CoverageButton' on 'Dashboard' sheet
    With ActiveSheet
        fileLink = .Cells(5, 2)                  
        .Hyperlinks.Add Anchor:=.Shapes("CoverageButton"), _
        Address:=fileLink
    End With

    Application.ScreenUpdating = True

End Sub

请注意,如果按钮位于不同的 sheet 上,您可能希望在我们明确引用 Set UpDashboard sheet 的地方使用类似的东西。

Sub AssignURL()
Dim fileLink As String

    Application.ScreenUpdating = False

    ' get link from 'Set Up' sheet
    fileLink = Sheets("Set Up").Cells(5, 2).Value

    With Sheets("Dashboard")
        .Hyperlinks.Add Anchor:=.Shapes("CoverageButton"), _
        Address:=fileLink
    End With

    Application.ScreenUpdating = True

End Sub