gpt4 book ai didi

基于另一个单元格的 VBA 过滤器

转载 作者:行者123 更新时间:2023-12-04 20:05:26 26 4
gpt4 key购买 nike

我是 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

我得到一个“找不到对象错误”,为什么我不能像这样压缩代码的任何原因

根据我修改了代码的答案
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 中的值时什么都没有发生,我需要添加什么吗?

最佳答案

如果您想在每次更改工作表中的某些内容时运行代码,则必须将代码放在一个方法中,该方法处理更改某些内容的事件。

/image/sZQqH.png

这是您必须找到更改事件的地方,在左侧您必须选择Sheet1 ,然后选择 Worksheet fromd 下拉列表,右边的将包含所有事件。每次更改都会引发更改事件,因此您需要“过滤”并仅处理特定单元格更改时的情况:

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 中的变化。 .

关于基于另一个单元格的 VBA 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45419664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com