【发布时间】:2016-06-02 14:33:39
【问题描述】:
在 Excel2010 中,我在行上创建了一个 X 项目表,并在 Y 列上创建了这些项目的特征。其中一项功能是应用程序区域,我想根据应用程序区域类型过滤项目。难点是桌子上的物品有multiple application areas,所以我不能用excel的简单过滤功能。
我想出了一个想法,即拥有 n 个复选框(此示例为 3 个)并将每个复选框的输出分配给不同的单元格,例如A10、B10、C10。我为额外列中的每个项目的 OR 函数分配相关值,例如F列。例如,当我检查应用程序区域A时,项目1和3在F列中有TRUE,我可以通过在自动过滤功能中选择 TRUE 使用此列过滤表格。请参阅picture 以获得更好的理解。
问题是我更改复选框的状态后,自动过滤功能不会自动刷新。每次我必须在 data 功能区中重新应用过滤器。在网上我发现这段VBA代码在活动表中有自动刷新功能。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
ActiveSheet.AutoFilter.ApplyFilter
End If
End Sub
现在,如果我主动转到 F 列中的一个单元格并将该单元格编辑为 TRUE 或
,此代码确实可以工作并重新应用过滤器em>FALSE 手动。如果我使用复选框更改 F 中的单元格值,则自动刷新不起作用。
通过键入值并按ENTER和使用复选框来更改单元格值有什么区别?
顺便说一句,复选框是 FORM CONTROLS 类型,而不是 ACTIVEX。
任何帮助将不胜感激。 谢谢!
【问题讨论】: