【问题标题】:Using selected listbox value to dynamically hide/show columns使用选定的列表框值动态隐藏/显示列
【发布时间】:2012-07-16 11:14:22
【问题描述】:

我可以在 excel 中的多选列表框表单上使用一些帮助,这必须通过 VBA 完成,表单的值是从 1 月到 6 月的几个月,如下所示。

  • 一月
  • 二月
  • 三月
  • 四月
  • 可能
  • 六月

例如,如果选择 Jan,我希望显示列 e 到 h。 如果未选择 Jan,则 e 到 h 列将被隐藏。

JAN -(E-H 列)
2 月 - (I-M 栏目)
3 月 - (N-R 列)
四月 - (列西南)
5 月 - (X-AB 栏)
6 月 - (COLUMNS AC-AG)

【问题讨论】:

    标签: excel vba listbox controls userform


    【解决方案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
    

    【讨论】:

    • 你的解决方案是使用普通表单控件还是activex表单控件
    • @user1422641 这是一个 VBA 用户窗体上的列表框,但应该不需要太多适应与任何其他类型的列表框控件一起使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    相关资源
    最近更新 更多