0
Private Sub CancelUtility_Click()
UtilityFilter.Hide
End Sub

Private Sub SelectElectricity_Click()
If SelectElectricity = False Then

End Sub

Private Sub SelectGas_Click()

End Sub

Private Sub SelectSolarElectricity_Click()

End Sub

Private Sub SelectSolarThermal_Click()

End Sub

Private Sub SelectSolidWaste_Click()

End Sub

Private Sub SelectWater_Click()

End Sub

Private Sub UtilityFilterText_Click()

End Sub

在此处输入图像描述

我要做的是设置一个弹出框以用作过滤器。如果未选中复选框,我希望它根据每个实用程序值隐藏每一行。

E = 电

G = 气体

SE = 太阳能

ST = 太阳能热

SW = 固体废物

W = 水

目前我有一个在启动以下宏时打开的弹出窗口。

Sub UtilityPopup()
UtilityFilter.Show
End Sub

弹出窗口是我创建的一个自定义用户表单,名为“UtilityFilter”

谢谢你的帮助!

4

1 回答 1

1

创建一个更新过滤器的函数,并从您已有的所有事件函数中调用它。就像是:

Private Filters() As String
Private NFilters As Integer

Private Sub UtilityFilterText_Click()
  UpdateFilters
End Sub

Private Sub SelectWater_Click()
  UpdateFilters
End Sub

Private Sub UpdateFilters()
  NFilters = -1
  If CheckboxSelectWater.Value Then AddFilter Filters, "W"
  If CheckboxElectricity.Value Then AddFilter Filters, "E"
  Range("A1:F10").AutoFilter Field:=1, Criteria1:=Filters, Operator:=xlFilterValues
End Sub

Private Sub AddFilter(Filters() As String, NewValue As String)
  NFilters = NFilters + 1
  ReDim Preserve Filters(NFilters)
  Filters(NFilters) = NewValue
End Sub

在这里您可以找到该Range.AutoFilter方法的文档。

于 2013-07-26T23:11:49.907 回答