我有一个带有过滤器的表格格式,我根据列D3中的值为非空白的单元格过滤所有表格。现在,我正在尝试根据单元格G1上列表的任何更改自动生成过滤器。
我尝试使用数据透视表,但这不起作用,因为这种类型的表不是数据透视表(格式为表格)的一部分。
可用于此类排序的正确代码是什么。 该表是Sheet 1,表名为(PT)。
答案 0 :(得分:0)
仅当G1中的值发生变化时,才会激活以下代码。
使用 Alt + F11 打开VBE,打开“Sheet 1”模块并粘贴给定代码。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo errH
If Not Intersect(Target, Me.Range("G1")) Is Nothing Then
Application.EnableEvents = False
'Put here things that you want to be done if G1 value is changed
'For example:
MsgBox "G1 was changed."
Application.EnableEvents = True
End If
Exit Sub
errH:
MsgBox ("Error number: " & Err.Number & ". Description: " & Err.Description)
Application.EnableEvents = True
End Sub
您可以测试它 - 只需更改G1值,您就会看到它有效。
但是,我不明白您对要过滤的内容的解释。但不管它是什么,只需将代码放在我标识的位置并删除MsgBox
。
答案 1 :(得分:0)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim criteriaparameter As String
Dim criteriavalue As String
On Error GoTo errH
If Not Intersect(Target, Me.Range("G1")) Is Nothing Then
Application.EnableEvents = False
criteriaparameter = ActiveSheet.Range("J1").Value
criteriavalue = ">=" & criteriaparameter
ActiveSheet.Range("$A$8:$L$8").AutoFilter Field:=10, Criteria1:=criteriavalue, _
Operator:=xlAnd
Application.EnableEvents = True
End If
Exit Sub
errH:
MsgBox ("Error number: " & Err.Number & ". Description: " & Err.Description)
Application.EnableEvents = True
End Sub