计算超链接

时间:2016-11-22 15:28:41

标签: excel vba excel-vba

我在插入超链接方面遇到了一个小问题。如果我从空白表开始并插入超链接,然后使用两个单独的复制/粘贴将其复制到另外两个单元格:

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还是我的电脑??

2 个答案:

答案 0 :(得分:4)

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

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

如果在宏运行后单击单元格A2或A3,则可以看到这一点(它们将同时更改颜色,表示已选择超链接)。

答案 1 :(得分:4)

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

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