基于另一个单元格的VBA过滤器
我是VBA初学者,尝试根据单元格值过滤数据,在谷歌搜索了一段时间后,我已经编写了一个有效的代码基于另一个单元格的VBA过滤器,vba,excel,Vba,Excel,我是VBA初学者,尝试根据单元格值过滤数据,在谷歌搜索了一段时间后,我已经编写了一个有效的代码 Sub FilterDepartment_Sales() Sheet6.Activate Sheet6.Cells.Select Selection.AutoFilter Selection.AutoFilter Field:=12, Criteria1:=Sheet8.Range("B3").Value End Sub 我必须将此宏分配给要运行的对象,数据没有自动刷
Sub FilterDepartment_Sales()
Sheet6.Activate
Sheet6.Cells.Select
Selection.AutoFilter
Selection.AutoFilter Field:=12, Criteria1:=Sheet8.Range("B3").Value
End Sub
我必须将此宏分配给要运行的对象,数据没有自动刷新。我更改B3中的单元格值,如何在我更改B3中的值时使其自动刷新
在上面的代码中,当我尝试执行以下操作时,它也会给我一个错误
Sub FilterDepartment_Sales()
Sheet6.Activate
'Sheet6.Cells.Select
'Selection.AutoFilter
'Selection.AutoFilter Field:=12, Criteria1:=Sheet8.Range("B3").Value
Sheet6.Cells.Select.AutoFilter Field:=12, Criteria1:=Sheet8.Range("B3").Value
End Sub
我得到了一个“Object not found error”,有什么理由不能像这样压缩代码
根据答案,我修改了密码
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheet6.Activate
Sheet6.Cells.Select
Selection.AutoFilter
Selection.AutoFilter Field:=12, Criteria1:=Sheet8.Range("B3").Value
End Sub
但是现在,当我更改B3中的值时,什么都没有发生,我需要添加什么吗?如果您想在每次更改工作表中的某个内容时运行代码,则必须将代码放在一个方法中,该方法处理更改某个内容的事件 这里是您必须查找更改事件的位置,在左侧您必须选择
Sheet1
,然后从下拉列表中选择工作表
,右侧将包含所有事件。每次更改都会引发Change事件,因此您需要、、筛选“此事件”并仅处理特定单元格更改时的情况:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 2 And Target.Column = 3 Then
Sheet6.Cells.AutoFilter Field:=12, Criteria1:=Sheet8.Range("B3").Value
End If
End Sub
在本例中,我们只关注单元格
B3
中的更改。请尝试取出select
部分。当我更改B3中的值时,如何使其自动刷新-使用事件。@Michal Turzyn,你能看一下我的编辑吗