Vba 弹出隐藏行

Vba 弹出隐藏行,vba,excel,excel-2010,Vba,Excel,Excel 2010,我想做的是设置一个弹出框,作为一个过滤器。如果未选中复选框,我希望它根据每个实用程序值隐藏每一行 E=电 G=气体 SE=太阳能电力 ST=太阳热能 SW=固体废物 W=水 目前,我有一个弹出窗口,当下列宏启动时打开 Private Sub CancelUtility_Click() UtilityFilter.Hide End Sub Private Sub SelectElectricity_Click() If SelectElectricity = False Then End Su

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

E=电

G=气体

SE=太阳能电力

ST=太阳热能

SW=固体废物

W=水

目前,我有一个弹出窗口,当下列宏启动时打开

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
弹出窗口是我创建的一个自定义用户表单,名为“UtilityFilter”


谢谢你的帮助

制作一个更新过滤器的函数,并从您已有的所有事件函数中调用它。比如:

Sub UtilityPopup()
UtilityFilter.Show
End Sub

您可以找到
Range.AutoFilter
方法的文档。

您要问的具体问题是什么?到目前为止,您尝试了什么?现在创建了弹出窗口和按钮。下一步是让未选中的“曾经”按钮隐藏电子表格中的相应行。
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