Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于另一个单元格的VBA过滤器_Vba_Excel - Fatal编程技术网

基于另一个单元格的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 我必须将此宏分配给要运行的对象,数据没有自动刷

我是VBA初学者,尝试根据单元格值过滤数据,在谷歌搜索了一段时间后,我已经编写了一个有效的代码

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,你能看一下我的编辑吗