遍历工作表-隐藏不连续的列

时间:2019-06-12 17:42:35

标签: excel vba

在工作簿中,我想循环浏览所有工作表,并根据每个工作表中某个单元格中的关键字,希望在各自的工作表中隐藏一些不连续的列。 我没有任何问题可以隐藏单个列或多个连续列,但是当我将多个非连续列设置为我的范围时,它不起作用。

name = ['J105150',
'J616293']

谁能告诉我为什么这不起作用?

一种解决方法当然是将所有列分别添加,但是我希望以更短的方式进行操作,当然,我想了解有关VBA的更多信息。顺便说一下,我是VBA的初学者。

1 个答案:

答案 0 :(得分:1)

如果您已使所有相关列都预先可见,则无需Else语句。

Option Explicit

Sub HideColumns()
    Dim i As Integer
    Dim x As Integer

    i = Worksheets.Count

    For x = 1 To i

        Worksheets(x).Range("A:AX").EntireColumn.Hidden = False

        If InStr(1, Worksheets(x).Range("A1").Value, "keyword", 1) <> 0 Then
            Worksheets(x).Range("D:E, G:H").EntireColumn.Hidden = True
        End If

    Next x

End Sub

除了这个小问题之外,我们的代码可以按预期工作。