简体   繁体   English

Excel VBA 过滤合并单元格

[英]Excel VBA filter merged cell

I have Excel sheet with 5 variables: Exam, Months (January, February, March, April).我有 Excel 表,其中包含 5 个变量:考试、月份(一月、二月、三月、四月)。 every month has 3 variables: Low, Medium, High.每个月都有 3 个变量:低、中、高。 And I want VBA code to do filter to shows only column "High" for all months.而且我希望 VBA 代码进行过滤以仅显示所有月份的“高”列。 My code works fine, but when I make months merged cell it doesn't work:我的代码工作正常,但是当我合并几个月的单元格时它不起作用:

Sub filter_high()

Columns("B:C").Select
Selection.EntireColumn.Hidden = True
Columns("E:F").Select
Selection.EntireColumn.Hidden = True
Columns("H:I").Select
Selection.EntireColumn.Hidden = True
Columns("K:L").Select
Selection.EntireColumn.Hidden = True

End Sub

在此处输入图像描述

you can set width of column, efect same like visible off您可以设置列的宽度,效果与可见关闭相同

Option Explicit

Sub showMediumOnly()
    Dim arr(2) As String
    Dim c As Integer
    Dim item As Variant
    
    arr(0) = "Low"
    arr(1) = "High"
    
    For c = 1 To ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column + 2  '  loop trought columns +2 cuz merget columns
        For Each item In arr    '   checking array
            If ActiveSheet.Cells(2, c) = item And ActiveSheet.Cells(2, c) <> "" Then ActiveSheet.Columns(c).ColumnWidth = 0 '   condition to check if its target array and change width
        Next
    Next
End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM