超链接 - 单击一个工作表中的单元格转到另一个工作表

时间:2015-11-27 11:17:26

标签: vba excel-vba hyperlink excel

我的问题可能是微不足道的,但我在很多例子中都搜索过这个问题,而且在我的案例中没有找到可行的东西。

我有一张工作表(wsProjects),我希望在其中有超链接的单元格转到其他工作表。 例如:我在wsProjects表中,单击名为RESOURCES的单元格,它将我带到wsResources表。

这是我的代码:

Set wb = ThisWorkbook
Set wsResources = Sheets("Resources")
Set wsProjects = Sheets("Projects")
Set wsResourcesProjects = Sheets("ResourcesProjects")

wb.Activate
wsProjects.Activate

iProjectsProjectColumn = 2
iProjectsProjectFirstRow = 8

iProjectsProjectLastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, iProjectsProjectColumn).End(xlUp).Row ' --- set last row
Set rProjectsEmptyProjectCell = Cells(iProjectsProjectLastRow + 1, iProjectsProjectColumn)  ' --- set first empty cell

        rProjectsEmptyProjectCell.Offset(2, 0).Font.Bold = False
        rProjectsEmptyProjectCell.Offset(2, 0).Font.Color = RGB(73, 69, 41)
        rProjectsEmptyProjectCell.Offset(2, 0).Font.Name = "Calibri"
        rProjectsEmptyProjectCell.Offset(2, 0).Font.Size = 11
        rProjectsEmptyProjectCell.Offset(2, 0).FormulaR1C1 = "RESOURCES"
        rProjectsEmptyProjectCell.Offset(2, 0).HorizontalAlignment = xlCenter
        rProjectsEmptyProjectCell.Offset(2, 0).VerticalAlignment = xlCenter
        rProjectsEmptyProjectCell.Offset(2, 0).Rows.RowHeight = 20
        wsProjects.Hyperlinks.Add Anchor:=rProjectsEmptyProjectCell.Offset(2, 0), Address:=wsResources

错误:输入不匹配

我不明白什么应该设置为锚和什么地址。我试过在网上创建了很多版本,但没有任何效果。

提前感谢您的帮助

1 个答案:

答案 0 :(得分:1)

如果超链接的地址应重定向到同一工作簿中的位置,则不是这样的方式:

wsProjects.Hyperlinks.Add Anchor:=rProjectsEmptyProjectCell.Offset(2, 0), Address:=wsResources

首先,参数Address是String类型,您不能传递Worksheet类型的对象。

此外,如果您希望将超链接指向同一工作表中的位置,则需要将属性Address留空,并指定属性SubAddress

以下是修改此行的方法:

wsProjects.Hyperlinks.Add Anchor:=rProjectsEmptyProjectCell.Offset(2, 0), _
                            Address:="", SubAddress:=wsResources.Name & "!A1"

我假设您要重定向到单元格A1。如果您想要使用其他单元格,只需将"!A1"更改为您需要的任何单元格。