VBA获取单击超链接的单元格的值

DRO*_*ers 4 excel vba excel-vba

我试图根据用户点击的超链接值将用户发送到工作簿中的certian表."1.01"是其中一个超链接的单元格中的示例文本.我点击这个代码时会触发事件,但每次BR都是0.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim BR As Integer
    BR = ActiveCell.Value
    Select Case BR
    Case Is < 2  'case always gets run because BR is always 0
        Worksheets("Appts").Select
    Case 2 To 3
        Worksheets("Next").Select
    Case 3 To 4
        Worksheets("Calls").Select
    End Select
End Sub
Run Code Online (Sandbox Code Playgroud)

我认为我的问题是我得到的问题,ActiveCell.Value但我无法弄明白.任何帮助表示赞赏.

谢谢,

Sid*_*out 7

这是你在尝试什么?

Activecell将始终为您提供活动单元格的值.如果你想要具有超链接的单元格的值,那么使用它.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim BR As Integer

    BR = Target.Range.Value

    Select Case BR
        Case Is < 2: Worksheets("Appts").Select
        Case 2 To 3: Worksheets("Next").Select
        Case 3 To 4: Worksheets("Calls").Select
    End Select
End Sub
Run Code Online (Sandbox Code Playgroud)

编辑

由于使用正确的数据类型有很多评论.这是一个补充信息.从您的选择案例中可以看出,您只关注1到4的值.在这种情况下,将变量声明为Integer就可以了.如果您不确定用户输入,那么引入一个小的错误处理,因为然后将变量声明为Integer或Long或Single将无济于事.例如

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim BR As Integer

    On Error GoTo Whoa

    BR = Target.Range.Value

    Select Case BR
        Case Is < 2: Worksheets("Appts").Select
        Case 2 To 3: Worksheets("Next").Select
        Case 3 To 4: Worksheets("Calls").Select
    End Select

    Exit Sub
Whoa:
    MsgBox "The value of the cell which has the hyperlink doesn't fall in the range 1 to 4"
End Sub
Run Code Online (Sandbox Code Playgroud)

快照

在此输入图像描述