excel - 通过 Excel VBA 按钮隐藏包含具有特定值的单元格的列

标签 excel vba

我有一个电子表格,其中包含与 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/

相关文章:

excel - 在 Excel 中使用条件格式链接到另一个工作簿

excel - 根据另一列的顺序对一列进行排序--excel

ms-access - 完成某些字段后,使字段在 MS Access 表单中可见

vba - 如何在新单元格中生成随机数

java - 使用 POI 恢复单元格中的粗体文本

excel - Microsoft Excel - 如何根据两个不同的列作为条件计算列的总和

excel - 获取数组长度?

python - 在从 Excel 范围填充的嵌套元组上使用 join()

vba - 如何在不使用循环的情况下返回 VBA 中的单元格区域?

vba - 在一个工作表中查找一个值,对其进行计数并将结果粘贴到另一个工作表中