创建一个搜索工作表的超链接,并选择具有重复内容的单元格

时间:2014-03-14 19:37:40

标签: excel vba excel-vba excel-formula

我在单元格中有一个值。有意地,该值在工作表的另一部分中重复。我希望能够使用内容12345单击C5中的单元格,并选择包含相同值的A1:1600中的单元格。在工作表中,我将永远不会有超过2个具有相同值的单元格,但值将会更改。

感谢您提供的任何帮助。

谢谢。

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题 - 我不确定您想要指定的范围,所以我只需将其设为A1:Z1600,但必要时进行更改。

在VBA中,将其粘贴到工作表的代码模块中:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

Dim OriginalAddress As String
Dim ValToFind As String
Dim CurrentCell As Range

    OriginalAddress = Target.Parent.Address
    ValToFind = Target.Parent.Value

    With Range("A1:Z1600")
        Set CurrentCell = .Find(What:=ValToFind)

        If OriginalAddress = CurrentCell.Address Then
            .FindNext(After:=CurrentCell).Activate
        Else
            CurrentCell.Activate
        End If
    End With
End Sub

答案 1 :(得分:0)

您可以使用Hyperlink功能执行您想要的操作。但是你必须手动输入你想要链接的每个单元格的公式...这是一个例子:

=HYPERLINK("[Book1]Sheet1!F2",12345)

这种方法非常笨拙。以强大的方式做你想做的事的唯一方法就是使用VBA。


编辑: 我能够复制此问题。以下编辑似乎解决了这个问题。

此VBA解决方案使用FindNext函数查找工作表中的下一个值:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim FirstAddress As String
Dim Rng As Range
Dim x As Long
x = Me.UsedRange.Rows.Count

FirstAddress = Target.Address

Set Rng = Me.UsedRange.Find(Target.Value)

If FirstAddress = Rng.Address Then
    Me.UsedRange.FindNext(Rng).Select
Else
    Rng.Select
End If

End Sub

这适用于代码所在的工作表的双击,并且重复值在该工作表中的位置并不重要。只需将代码放在工作表的模块中即可。


最后一种方法(尽管仍然不如VBA)是插入超链接:

enter image description here

在此示例中,您点击A2>转到插入标签>超链接>放置在此文档中并输入相应的单元格。这会将小区A2超链接到F2,以便在选择A2时选择F2