我可以在excel中使用多选列表框形式的帮助,必须通过VBA完成,表格的值是jan-june的月份,如下所示。
如果选择Jan,我想要列,e到h显示。 如果未选择Jan,则隐藏列e到h。
JAN - (COLUMNS E-H)
FEB - (COLUMNS I-M)
3月 - (COLUMNS N-R)
4月 - (COLUMNS S-W)
MAY - (COLUMNS X-AB)
6月 - (COLUMNS AC-AG)
答案 0 :(得分:1)
欢迎使用Stack Overflow。有时,宏录制器是你的朋友。
我录制了一个自己隐藏E到H列的宏。这是录制的代码:
Sub Macro1()
'
' Macro1 Macro
' Macro recorded 7/17/2012 by Jimmy Peña
'
'
Columns("E:H").Select
Selection.EntireColumn.Hidden = True
End Sub
选择/选择对清楚地表明我可以连接这两行。我缩短了这样的代码:
Columns("E:H").EntireColumn.Hidden = True
由于该属性的值为True
,因此我知道我可以通过将值设置为True
来隐藏列,并通过将值设置为False
来显示列。
由于您尚未显示正在使用的代码,因此我将提供一种通用方法,您需要对其进行自定义以供使用。
我在示例用户表单中添加了一个列表框。此代码将根据选择的值选择性地隐藏/取消隐藏。
Private Sub ListBox1_Click()
Dim selectedValue As String
' get selected value from listbox
selectedValue = ListBox1.value
Application.ScreenUpdating = False
' unhide any columns
Cells.EntireColumn.Hidden = False
Select Case selectedValue
Case "JAN"
Columns("E:H").EntireColumn.Hidden = True
Case "FEB"
Columns("I:M").EntireColumn.Hidden = True
Case "MARCH"
Columns("N:R").EntireColumn.Hidden = True
Case "APRIL"
Columns("S:W").EntireColumn.Hidden = True
Case "MAY"
Columns("X:AB").EntireColumn.Hidden = True
Case "JUNE"
Columns("AC:AG").EntireColumn.Hidden = True
End Select
Application.ScreenUpdating = True
End Sub