如何在VBA中通过可变单元格坐标创建单元格间的超链接?
实现VBA中可变坐标单元格的超链接设置
问题出在Hyperlinks.Add方法的SubAddress参数要求传入单元格地址的字符串格式,而非直接传递Range对象。只需把Range对象转换成对应的地址字符串就能解决问题。
修改后的代码如下:
Sub macro() Dim m As Integer Dim n As Integer m = 5 n = 2 Dim rga As Range Set rga = Sheet1.Cells(5, m) Dim rgb As Range Set rgb = Sheet1.Cells(9, n) Sheet1.Hyperlinks.Add _ Anchor:=rga, _ Address:="", _ SubAddress:=rgb.Parent.Name & "!" & rgb.Address(False, False) End Sub
关键说明:
rgb.Address(False, False):获取目标单元格的相对引用地址(比如n=2时返回"B9"),如果需要绝对引用格式("$B$9"),直接用rgb.Address即可rgb.Parent.Name:自动获取目标单元格所在的工作表名称,后续工作表改名也不用手动修改代码- 所有Range对象都指定工作表(如
Sheet1.Cells),避免因当前激活工作表变化导致出错
内容的提问来源于stack exchange,提问作者Jo Jomax
相关产品推荐
相关产品推荐

