Использовать значение ячейки как часть макроса - PullRequest
0 голосов
/ 23 октября 2018

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

Sub Hideshow()
    If Range("A1").Value = "True" Then
        ActiveSheet.Columns("B:C").Hidden = False
    ElseIf Range("A1").Value = "False" Then
        ActiveSheet.Columns("B:C").Hidden = True
    Else
    Return
    End If
    End Sub

Для этого кода A1 = результат флажка (True / False) и B: C - столбцы, которые я скрываю или, если они уже скрыты;показывая.

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

Теперь я поместил столбцы, которые хочу скрыть, в ячейку A2 на моем листе, например, B: C

Я бы хотел, чтобы код макроса использовал значение этой ячейки в качестве «определенного диапазона».?чтобы показать и скрыть диапазон столбцов, который я определил в ячейке A2.

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

Новый будет выглядеть примерно так

Sub Hideshow()
    If Range("A1").Value = "True" Then
        ActiveSheet.Columns(" The Value in A2 ").Hidden = False
    ElseIf Range("A1").Value = "False" Then
        ActiveSheet.Columns(" The Value in A2").Hidden = True
    Else
    Return
    End If
    End Sub

Есть идеи?

1 Ответ

0 голосов
/ 23 октября 2018

Этот код должен помочь:

Sub HideShow()

    Dim ColsToHide As String
    ColsToHide = Sheet1.Range("A2") 'This will always get the value from the sheet with the codename Sheet1.

    'Unhide if hidden, hide if not hidden.
    ActiveSheet.Columns(ColsToHide).Hidden = Not ActiveSheet.Columns(ColsToHide).Hidden

End Sub  

Возможно, есть лучшие способы выяснить, какие столбцы нужно скрыть - есть ли что-то конкретное в столбце, который решает, должен ли он быть скрыт или нет?

...