Excelmacros根据string隐藏列

我试图在Excel 2016中创build一个macros,它自动根据包含在不同单元格中的string隐藏列。 现在,范围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 

任何帮助表示赞赏!

我从我的手机input这个,所以我不能testing它,但是这样做:

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

将工作。 基本上,你想要做的只是说Cell.Hide哪个不行。 EntireColumn.Hidden将在引用列时起作用。 所以,你应该说,隐藏这个cells' column

我也注意到你把它设置为False ,这意味着, 取消隐藏 。 我猜这是错误的,除非你实际上试图取消隐藏它。

完整的代码应该是:

 Sub Hide_Columns_Containing_Value() Dim c As Range For Each c In Range("R1:GJU1").Cells If c.Value = "X" Then Columns(c.column).EntireColumn.Hidden = True End If Next c End Sub 

让我知道,如果它的作品!