excel - Excel VBA过滤合并单元格
问题描述
我有 5 个变量的 Excel 表:考试、月份(一月、二月、三月、四月)。每个月都有 3 个变量:低、中、高。而且我希望 VBA 代码进行过滤以仅显示所有月份的“高”列。我的代码工作正常,但是当我合并几个月的单元格时它不起作用:
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
解决方案
您可以设置列的宽度,效果与可见关闭相同
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
推荐阅读
- javascript - 通过 JS 脚本和 Google Sheets API 抓取图表作为图像?
- python - scipy.optimize.minimize 给出部分不正确的结果
- java - android studio如何保存关闭前显示的数据?
- python - 按组用下一个可用值替换 Python 中的空值
- bash - 如何在 bash 脚本中的 CSV 的下一列中添加文本
- django - Django 站点的 Laravel OAuth2 身份验证
- python - PyQt5:当 QScrollBar 可见性改变时是否有信号?
- c# - SQL Server Studio 中的存储过程可以使用十年
- excel - 查找文本,将外部边框应用于该行,但仅适用于表行,
- c++ - 我在 C++ 中二维数组的动态内存分配中遇到了一些奇怪的代码?请解释一下这是什么?