【问题标题】:Hide multiple columns VBA Excel隐藏多列 VBA Excel
【发布时间】:2018-11-09 12:20:08
【问题描述】:

在 sheet1 中,我需要显示 (C:N) 中的所有列,其中在 (B2) 中选择月份,其他列必须隐藏。如果我在 B2 中选择了第 4 个月,那么我只需要查看 (C:N) 中第 4 个月的日期等这些列。

如果我有完整的日期日历,如何找到确切的月份并隐藏其他月份?

Private Sub Worksheet_Change(ByVal Target As Range)
Dim wb As Workbook
Dim ws As Worksheet
Dim entireRange As Range
Set wb = ThisWorkbook
Set ws = wb.Sheets("Sheet1")
Set entireRange = ws.Columns("C:N")

entireRange.EntireColumn.Hidden = False

Select Case ws.Range("B2")

  Case "1"
      ws.Range("G:N").EntireColumn.Hidden = True

  Case "5"
      ws.Range("C:F,H:N").EntireColumn.Hidden = True

  Case "6"
      ws.Range("C:G,I:N").EntireColumn.Hidden = True



End Select
End Sub

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在发布者已经尝试自己解决问题时才提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(控制台输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQ 和How to Ask
  • 对不起,我没有新的。
  • 你能补充一下你的代码有什么问题/缺少什么吗?你在哪里挣扎?
  • 已经完成 :)

标签: excel vba hide multiple-columns


【解决方案1】:

隐藏不适合您月份的列的简单代码如下所示:

Sub HidingColumn()

Dim i As Long

For i = 12 To 3 Step -1 '12 being your N Column

    If Month(Cells(4, i)) <> Range("B2").Value Then
        Cells(4, i).Columns.Hidden = True
    End If
Next i

End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多