Скрыть / показать столбец на основе значения строки - PullRequest
1 голос
/ 17 октября 2019

Мне нужно отобразить столбец E в случае, если в раскрывающемся списке в столбце B выбрано значение «Проверка камеры AXIS». Я прошел различные поиски в Google, и это код, который я придумал, чтоЯ думаю, что будет соответствовать моим требованиям:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Columns("E:E").EntireColumn.Hidden = [B7:B999] = "Camera AXIS check"
End Sub

Однако всякий раз, когда я пытаюсь это проверить, мне не нравится строка 3.

Может кто-нибудь посоветовать, где я ошибся?

Чтобы дать более подробную информацию о задаче, столбец B имеет эти выборки из строки 7 и может иметь их вплоть до неограниченного количества строк, тогда как столбец E подходит только для отображения, когда выбор в столбце B равен«Проверка камеры по оси».

1 Ответ

1 голос
/ 17 октября 2019

Это соответствующий макрос VBA для выполнения того, что вам нужно:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "Camera AXIS check" And Target.Column = 2 Then
    Columns("E").EntireColumn.Hidden = True
        Else
        Columns("E").EntireColumn.Hidden = False
    End If
End Sub

Если я правильно понимаю комментарии, столбец должен оставаться невидимым, если в столбце «B» есть «Проверка камеры AXIS». Следующая подпрограмма выполняет те же действия, что и выше, но также проверяет, находится ли искомое значение где-либо в столбце, и, если это так, не повторно скрывает столбец.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "Camera AXIS check" And Target.Column = 2 Then
    Columns("E").EntireColumn.Hidden = False
        Else
        If IsError(Application.Match("Camera AXIS check", Range("B:B"), 0)) Then
            Columns("E").EntireColumn.Hidden = True
        End If
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...