如何用VBA在Sheet2的B列最后非空单元格创建跨表超链接?
正确实现方式
以下是满足需求的VBA代码,同时解决跨工作表引用和定位最后非空单元格的问题:
Sub AddCrossSheetHyperlink() Dim wsTarget As Worksheet Dim lastNonEmptyCell As Range ' 定义目标工作表(Sheet2) Set wsTarget = ActiveWorkbook.Worksheets("Sheet2") ' 定位Sheet2中B列最后一个非空单元格 Set lastNonEmptyCell = wsTarget.Range("B" & wsTarget.Rows.Count).End(xlUp) ' 创建跨工作表超链接:链接到Sheet1的D1,显示文本为Sheet1的C1内容 lastNonEmptyCell.Formula = "=HYPERLINK(""#Sheet1!D1"", Sheet1!C1)" End Sub
关键说明:
- 定位最后非空单元格:必须通过
wsTarget限定Rows.Count和Range,避免受当前激活工作表影响,确保始终在Sheet2的B列查找。 - 跨工作表超链接公式:
- 链接目标需添加
#前缀和工作表名称(#Sheet1!D1),明确指向当前工作簿内的Sheet1单元格。 - 显示文本直接引用
Sheet1!C1,无需额外引号(除非单元格内容包含特殊字符)。
- 链接目标需添加
简化版(无需变量):
如果不需要复用工作表对象,也可以直接写为:
ActiveWorkbook.Worksheets("Sheet2").Range("B" & ActiveWorkbook.Worksheets("Sheet2").Rows.Count).End(xlUp).Formula = "=HYPERLINK(""#Sheet1!D1"", Sheet1!C1)"
内容的提问来源于stack exchange,提问作者Phantom
相关产品推荐
相关产品推荐

