Hyperlink.add使用.Cells而不是.Range锚定

时间:2016-11-10 18:24:22

标签: excel-vba macros vba excel

我有一些似乎无法正常工作的代码

With Cells(emptyRow, 13)
     .Hyperlinks.Add Anchor:=.Cells(emptyRow, 13), _
     Address:=EmailLinkTextBox.Value, TextToDisplay:="Link"
End With

我认为这是由于锚点,因为我发现锚的描述声明它可以是Range或Shape对象。

这是问题,如果是这样的话还是要让它起作用吗?

谢谢

1 个答案:

答案 0 :(得分:0)

当您将锚点设置为.Cells(emptyRow, 13)块内的地址With Cells(emptyRow, 13)时(即相当于Cells(emptyRow, 13).Cells(emptyRow, 13)),锚点将被放置在Cells(2 * emptyRow - 1, 2 * 13 - 1)中。

您可能希望将锚更改为Cells(emptyRow, 13) - 即将代码替换为:

With Cells(emptyRow, 13)
     .Hyperlinks.Add Anchor:=Cells(emptyRow, 13), _
     Address:=EmailLinkTextBox.Value, TextToDisplay:="Link"
End With

With Cells(emptyRow, 13)
     .Hyperlinks.Add Anchor:=.Cells(1, 1), _
     Address:=EmailLinkTextBox.Value, TextToDisplay:="Link"
End With

注意:Cell是一个Range对象 - 只是它只有1 x 1的大小。