You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 08:36:02