基于更改单元格值(VBA)的超链接和自动筛选表
问题描述:
我正在尝试的是在Sheet1上创建一个自动筛选Sheet2上的表的超链接。此表应根据Sheet1中的某个单元格值进行过滤。单元格值根据切片器选择动态更改。基于更改单元格值(VBA)的超链接和自动筛选表
因此,举例来说,
- 如果Sheet 1上显示电池值“特朗普”,然后Sheet 2上表应该过滤如果细胞在塔13
- 以仅显示“特朗普”在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
答
- 希拉里拼写双升。 (但这不是导致此问题的原因)
- Worksheet_BeforeDoubleClick是一个事件处理程序,无论何时双击某处,都可以调用该事件处理程序,但不需要此操作,但需要Worksheet_FollowHyperlink。
- ActiveSheet.Range(“S18”)。选择意味着像点击单元格S18;它没有返回值,所以你不能将它与1进行比较。
- 你并不需要一个宏。我的意思是使用宏有一些缺点:对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
感谢您的评论。当我运行代码时,它会显示“编译错误:End With With With” – Darren
好的,我将End With更改为End If。不知道我是否应该。无论哪种方式,它似乎没有工作。该超链接将我带到Sheet2,但表格未被过滤。 – Darren
你是对的,这是结束如果。在第一行设置一个断点(如果目标...),然后让我们看看它是否被调用。 – z32a7ul