我有一个电子表格,其中包含与 2015 年至 2020 年周一至周六日期相关的列。当我打印这张表时,我只想看到“星期一”栏,而不是星期二至星期六。第 14 行包含日期 (dd/mm),第 15 行包含星期几(例如,“M”代表星期一,“T”代表星期二,等等)。我希望能够在隐藏所有非星期一列和查看所有列之间切换。下面的 VBA 按钮代码给了我“运行时错误 '13' - 类型不匹配”。这个按钮有一个简单的修复方法,还是有更好的方法来完成这个?
Private Sub CommandButton1_Click()
Dim i As Long
For i = 11 To 222
If Cells(14, i).Value = "T" Or "W" Or "R" Or "F" Or "S" Then
Columns(i).EntireColumn.Hidden = True
Else
Columns(i).EntireColumn.Hidden = False
End If
Next i
End Sub
最佳答案
您的代码很接近,但是 IF ... OR ... OR
语法关闭。您的 OR
条件是独立的,它们必须包含计算结果为 True
的表达式或 False
.
因此,它应该改为:
If Cells(14, i).Value = "T" Or Cells(14, i).Value = "W" Or Cells(14, i).Value = "R" Or Cells(14, i).Value = "F" Or Cells(14, i).Value = "S" Then
诚然,这要麻烦得多,但它应该可以解决问题。
由于您要查找的值是单个字符,因此您可以在这里作弊并使用
INSTR()
:If Instr(1, "TWRFS", Cells(14,i).value) > 0 Then
因此,如果您的单元格的值是在那一串工作日字母中,那么......做任何事情
关于excel - 通过 Excel VBA 按钮隐藏包含具有特定值的单元格的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35586211/