Excel宏隐藏基于字符串的列

时间:2017-07-14 19:02:27

标签: excel vba excel-vba

我正在尝试在Excel 2016中创建一个宏,该宏根据不同单元格中包含的字符串自动隐藏列。现在,范围R1:GJU1是一个用IF公式填充X的公式。

这是我的代码:

Sub Hide_Columns_Containing_Value()

    Dim c As Range

    For Each c In Range("R1:GJU1").Cells
        If c.Value = "X" Then
            c.EntireColumn.Hidden = False
        End If
    Next c

End Sub

我收到此错误:

Run-time error '13':

Type mismatch

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我正在通过手机输入这个,所以我无法测试,但这样做:

Columns(c.column).EntireColumn.Hidden = True

会奏效。基本上,你要做的只是说Cell.Hide这是行不通的。引用列时EntireColumn.Hidden将起作用。因此,您应该说,隐藏此column的{​​{1}}。

我还注意到您将其设置为cells' column,这意味着取消隐藏。我猜这是错误的,除非你实际上试图取消隐藏它。

完整代码应为:

False

让我知道它是否有效!