Зацикливание рабочих таблиц - скрытие несмежных столбцов - PullRequest
0 голосов
/ 12 июня 2019

В рабочей книге я хочу просмотреть все рабочие таблицы и, в зависимости от ключевого слова в определенной ячейке каждого рабочего листа, я хотел бы скрыть некоторые несмежные столбцы в соответствующем рабочем листе. У меня нет проблем с тем, чтобы скрыть один столбец или несколько смежных столбцов, но это не работает, когда я задаю несколько несмежных столбцов в качестве диапазона.

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
        Else: Worksheets(x).Range("A:AX").EntireColumn.Hidden = False
        End If
    Next x 
End Sub

Может кто-нибудь сказать мне, почему это не работает?

Обходной путь, конечно, должен был бы добавить все столбцы отдельно, но я бы предпочел сделать это более коротким способом и, конечно, я хотел бы понять больше о VBA. Кстати, я новичок в VBA.

1 Ответ

1 голос
/ 12 июня 2019

Ваша выписка 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

Кроме этой небольшой проблемы, наш код работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...