基于更改单元格值(VBA)的超链接和自动筛选表

问题描述:

我正在尝试的是在Sheet1上创建一个自动筛选Sheet2上的表的超链接。此表应根据Sheet1中的某个单元格值进行过滤。单元格值根据切片器选择动态更改。基于更改单元格值(VBA)的超链接和自动筛选表

因此,举例来说,

  1. 如果Sheet 1上显示电池值“特朗普”,然后Sheet 2上表应该过滤如果细胞在塔13
  2. 以仅显示“特朗普”在Sheet2上的值显示“Hilary Clinton”,那么Sheet2上的表应该过滤以在第13列中仅显示“Hilary Clinton”。等等等等等等...

我对VBA非常不熟悉我希望得到一些帮助。

这是我到目前为止,但是当我尝试点击超链接时没有任何反应。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
If ActiveSheet.Range("S18").Select = 1 Then 
    'This is the cell with the hyerlink in it. 
Worksheets("Table of Presidents").ListObjects("Table17").Range.AutoFilter Field:=13, Criteria1:=Worksheets("Dashboard").Range("S21").Value 
'This is the table that needs to be filtered. 
'The criteria1 part is the field that dynamically changes 
Worksheets("Table of Presidents").Activate 
End If 
End Sub 

  1. 希拉里拼写双升。 (但这不是导致此问题的原因)
  2. Worksheet_BeforeDoubleClick是一个事件处理程序,无论何时双击某处,都可以调用该事件处理程序,但不需要此操作,但需要Worksheet_FollowHyperlink。
  3. ActiveSheet.Range(“S18”)。选择意味着像点击单元格S18;它没有返回值,所以你不能将它与1进行比较。
  4. 你并不需要一个宏。我的意思是使用宏有一些缺点:对fileformat的要求等。这个任务可以通过基于公式设置过滤器(使用隐藏列或条件格式)并添加一个简单地将目标定位到总统表上的单元格的链接片。

更新

重新2-3:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
    If Target.Type = msoHyperlinkRange And Target.Range.Address = "$S$18" Then 
     Worksheets("Table of Presidents").ListObjects("Table17").Range.AutoFilter Field:=13, Criteria1:=Worksheets("Dashboard").Range("S21").Value 
     Worksheets("Table of Presidents").Activate 
    End If 
End Sub 
+0

感谢您的评论。当我运行代码时,它会显示“编译错误:End With With With” – Darren

+0

好的,我将End With更改为End If。不知道我是否应该。无论哪种方式,它似乎没有工作。该超链接将我带到Sheet2,但表格未被过滤。 – Darren

+0

你是对的,这是结束如果。在第一行设置一个断点(如果目标...),然后让我们看看它是否被调用。 – z32a7ul