【问题标题】:VBA: Assign hyperlink from cell to objectVBA:将超链接从单元格分配到对象
【发布时间】:2021-09-04 09:00:25
【问题描述】:

我的仪表板已锁定,因此同事不能意外更改/删除任何内容。

不过,我需要他们能够向按钮添加超链接。

我创建了一个“设置”表,允许他们输入信息,然后这些信息将反映在仪表板上(KPI、标题等)。我希望它包含一个按钮,该按钮会将“设置”上的 B5 的超链接分配给仪表板上的按钮(名为“CoverageButton”)。

这是设置表,使用 Google 作为替代链接:

我尝试使用的代码是:

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

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

我错过了什么吗?

【问题讨论】:

    标签: excel vba hyperlink


    【解决方案1】:

    Shapes 是工作表的属性,而不是工作簿。

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

    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
    

    注意,如果按钮位于不同的工作表上,您可能希望使用类似这样的内容,我们明确引用 Set UpDashboard 工作表。

    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
    

    【讨论】:

    • 谢谢诺里,这很有帮助。它现在告诉我没有找到具有指定名称的项目,似乎指的是"CoverageButton"。我已将按钮的名称定义为“CoverageButton” - 我猜我没有正确调用它 - 即 .Shapes 不是正确的方法?
    • 如果“活动”工作表的形状名为 CoverageButton,则代码应该可以工作,我会在答案中添加一些可能有帮助的建议。
    • 啊。名为 CoverageButton 的形状位于另一张纸上 Dashboard
    • 您的第二个选项明确引用这两张纸很有意义。我一辈子都找不到CoverageButton。当我定义它的名称时,它的范围是 Workbook。它在工作表上Dashboard。在您建议的代码中,它指的是正确的工作表。我的命名没有空格,拼写都匹配。
    • 对。当我使用名称 Rectangle: Rounded Corners 3 而不是我给它的名称时,该代码有效。感谢您的帮助诺里。
    猜你喜欢
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 2016-08-23
    • 2021-05-12
    • 2018-01-11
    相关资源
    最近更新 更多