基于更改单元格值(VBA)的超链接和自动筛选表
我想要做的是在Sheet1上创build一个超链接,在Sheet2上自动筛选表格。 该表格应根据Sheet1中的某个单元格值进行过滤。 单元格值根据切片器selectdynamic更改。
所以举个例子,
- 如果Sheet 1上的单元格值显示“唐纳德·特朗普”,那么Sheet2上的表应该过滤,以便在第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
- 希拉里·克林顿拼写为双l。 (但这不是导致问题的原因)
- Worksheet_BeforeDoubleClick是一个事件处理程序,只要你双击某处,你就不需要这个,而是Worksheet_FollowHyperlink。
- ActiveSheet.Range(“S18”)。select意味着像点击单元格S18; 它没有返回值,所以你不能和1进行比较。
- 你不需要这个macros。 我的意思是使用macros有一些缺点:对fileformat的要求等。这个任务可以通过设置基于公式的filter(使用隐藏的列或条件格式),并添加一个链接,只是针对您的总统表片。
更新
重新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