Vba 创建一个超链接,用于搜索工作表并选择包含重复内容的单元格

Vba 创建一个超链接,用于搜索工作表并选择包含重复内容的单元格,vba,excel,excel-formula,Vba,Excel,Excel Formula,我在单元格中有一个值。此值有意复制到工作表的另一部分。我希望能够单击C5中内容为12345的单元格,并选择A1:1600中包含相同值的单元格。在工作表中,具有相同值的单元格不会超过2个,但值会发生变化 我感谢你能提供的任何帮助 谢谢。这应该可以解决问题-我不确定您想要指定的范围,所以我只是将其设置为A1:Z1600,但需要时进行更改 在VBA中,将其粘贴到工作表的代码模块中: Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperl

我在单元格中有一个值。此值有意复制到工作表的另一部分。我希望能够单击C5中内容为12345的单元格,并选择A1:1600中包含相同值的单元格。在工作表中,具有相同值的单元格不会超过2个,但值会发生变化

我感谢你能提供的任何帮助


谢谢。

这应该可以解决问题-我不确定您想要指定的范围,所以我只是将其设置为
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
您可以使用该函数执行您想要的操作。但是,您必须手动键入要链接的每个单元格的公式。。。下面是一个例子:

=HYPERLINK("[Book1]Sheet1!F2",12345)
这种方法非常笨拙。以健壮的方式做您想要做的事情的唯一方法是使用VBA


编辑:我能够复制该问题。下面的编辑似乎解决了这个问题

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

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)是插入超链接:


在本例中,单击
A2
>转到插入选项卡>超链接>放置在此文档中,并输入相应的单元格。此超链接将单元格
A2
链接到
F2
,这样当选择
A2
时,就会选择
F2

您可以使用VBA吗?-这可以通过
Find
函数完成……如果可能的话,我更喜欢一个公式,但如果不行,VBA也可以。我使用VBA的唯一问题是,这个电子表格将在十几个设施之间购物,必须指导每个操作员如何默认启用宏,这对他们中的一些人来说是一件麻烦事。我认为你现在必须通过VBA-发布解决方案来做到这一点…再想想,你可以通过超链接公式来做到这一点,但这就意味着细胞里不仅仅有价值……这很好。单元格已使用相当复杂的公式从另一个工作表返回信息。添加另一个参数应该不会太困难。您的VBA解决方案似乎选择了随机单元格。有时它会向右移动3或4个单元格,有时向上移动1个单元格。从未达到我所期望的价值。这很可能是操作员的错误。