计数超链接

我插入超链接有一个小问题。 如果我从一张空白纸张开始并插入一个超链接,然后使用两个单独的复制/粘贴复制到另外两个单元格:

Sub hyper1() Cells.Clear With ActiveSheet .Hyperlinks.Add Anchor:=Range("A1"), Address:="http://www.cnn.com/", TextToDisplay:="News" Range("A1").Copy Range("A2") Range("A1").Copy Range("A3") MsgBox .Hyperlinks.Count End With End Sub 

三个单元格被填充,Excel正确地报告超链接的数量为3

但是,如果我用一个复制/粘贴填充第二个单元格:

 Sub hyper2() Cells.Clear With ActiveSheet .Hyperlinks.Add Anchor:=Range("A1"), Address:="http://www.cnn.com/", TextToDisplay:="News" Range("A1").Copy Range("A2:A3") MsgBox ActiveSheet.Hyperlinks.Count End With End Sub 

同样的三个单元格被填充,但Excel报告超链接的数量为2

哪个坏了,Excel 2007还是我的电脑?

 Sub hyper3() Cells.Clear With ActiveSheet .Hyperlinks.Add Anchor:=Range("A1"), Address:="http://www.cnn.com/", TextToDisplay:="News" Range("A1").Copy Range("A2,A3") MsgBox ActiveSheet.Hyperlinks.Count End With End Sub 

逗号分隔将它们分成两个范围而不是一个

我怀疑它是因为在第二个macros,超链接被复制为单个范围对象而不是两个单独的范围(如第一个)。

Excel会将其视为一个Range对象(表示指定超链接所附的范围)。 因此,它将把这个计为一个超链接而不是两个。

如果您在macros运行后单击单元格A2或A3中的任意一个(它们都将同时更改颜色,指示已select超链接),您可以看到这一点。