使用数据透视表单元格值在原始工作表中查找相同的值

时间:2015-08-29 03:19:24

标签: excel-vba vba excel

在我原始的数据工作表中,我创建了一个VBA脚本,该脚本在一列,#34; A"中为单元格值创建超链接。

列中显示的文字" A"运行脚本后的单元格是原始单元格值。这个脚本工作得很好。

然后使用此工作表数据创建数据透视表。当然,超链接在数据透视表中消失了。

我希望能够做的是点击数据透视表中的单元格值,让它在原始工作表中查找该值,然后打开超链接。

我使用的是Excel 2013,数据透视表是经典的数据透视表视图。

1 个答案:

答案 0 :(得分:0)

解决方案:我们说这是您的资料工作表,名为Sheet1

<强> Sheet 1中

Sheet1

单元格A2正在链接到网站。您的第二张工作表Sheet2包含Sheet1中数据的数据透视表:

<强> Sheet 2中

Sheet2

如果我理解你的要求,你想要点击&#34;彼得&#34;在Sheet2中打开包含&#34; Peter&#34;的单元格中链接的URL在Sheet1。您可以通过将以下代码添加到Sheet2(右键单击标签行中的Sheet2并选择&#34;查看代码&#34;)来实现这一目标。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Columns.Count = 1 And Target.Rows.Count = 1 And Target.Column = 1 Then
        Dim SourceSheet As Worksheet
        Dim SourceRange As Range
        Dim HyperlinkAddress As Range

        Set SourceSheet = ThisWorkbook.Sheets("Sheet1")
        Set SourceRange = SourceSheet.Range("A:A")

        ' Find cell address in Sheet1
        On Error Resume Next
        Set HyperlinkAddress = SourceSheet.Range("A" & _
            Application.WorksheetFunction.Match(Target.Value, SourceRange, 0))
        If HyperlinkAddress.Hyperlinks.Count = 1 Then
            ' Click hyperlink
            ThisWorkbook.FollowHyperlink (HyperlinkAddress.Hyperlinks(1).Address)
        End If
    End If
End Sub

说明:在Excel工作表中选择其他单元格时会触发事件Worksheet_SelectionChange。上面的代码将首先检查您是否在A列中选择了(并且只有1个)单元格,如果是,请在Sheet1中找到与包含您单击的单元格值的单元格对应的行号。一旦找到,它就会验证单元格是否包含链接地址,如果有,请单击它。