Member 13626605 Ответов: 1

Мне нужен код VBA, чтобы скрыть флажок, пока не будет установлен другой флажок?


Мне нужно, чтобы флажок "Two_one_WP" был скрыт до тех пор, пока не будет нажат флажок "Two_zero".??

Что я уже пробовал:

Private Sub Two_zero_Click()
If Two_zero = True Then
    [2].EntireRow.Hidden = False
    Else: [2].EntireRow.Hidden = True
    End If
End Sub

Private Sub Two_one_WP_Click()
If Two_one_WP = True Then
    [3:7].EntireRow.Hidden = False
    Else: [3:7].EntireRow.Hidden = True
    End If
End Sub

1 Ответов

Рейтинг:
0

CHill60

Почему вы пытаетесь скрыть строки в электронной таблице?

Просто переключите Visible свойство флажка, например, ввод этого кода в модуль ThisWorkbook VBA работает для меня

Option Explicit

Private Sub Two_zero_Click()
    If Two_zero.Value Then
        two_one_WP.Visible = True
    Else
        two_one_WP.Visible = False
    End If
End Sub

Стоит отметить, что объекты Checkbox, которые я использовал, были элементами управления ActiveX, а не элементами управления Form. Если вы используете элементы управления формой, то вам нужно что-то вроде этого
Sub Two_zero_Click()
    If ActiveSheet.Shapes("Two_zero").ControlFormat.Value = 1 Then
        Sheets("Sheet1").Shapes("two_one_WP").Visible = True
    Else
        Sheets("Sheet1").Shapes("two_one_WP").Visible = False
    End If
End Sub


[Редактировать после ОП комментарий]

Вы утверждаете, что приведенный выше код "нарушает" ваш код, чтобы скрыть строки. Это невозможно.

Если вы хотите, чтобы все флажки подкатегорий также исчезли, то вы можете просто расширить код, который я вам дал, чтобы включить их все. Нет ничего, что помешало бы вам скрыть строки, а также, если это то, что вы хотите сделать.

Однако, если вы пытаетесь скрыть флажки скрывая строки, на которых они находятся затем вам нужно установить их в положение "перемещение и размер с ячейками". Принятый ответ на этот пост StackOverflow[^] покажет вам, как это сделать (это зависит от того, какую версию Excel вы используете).
Как только вы установите это свойство на флажке(ах), то при скрытии строки флажок "ВКЛ." этой строки также будет скрыт.


Maciej Los

Кэролайн, кажется, ОП хочет скрыть ссоры... Этот фрагмент кода может оказаться важным: [3:7].EntireRow.Hidden = True

CHill60

Я думаю, что вижу, в чем их проблема (обновленное решение) ... но они спросили, как сделать флажки скрытыми ;-)

Maciej Los

5ed!

Member 13626605

Я создаю электронную таблицу и устанавливаю флажок для каждой категории, и когда этот флажок установлен, он открывает серию подкатагорий, которые можно щелкнуть, чтобы предоставить дополнительную информацию. Мне нужен код VBA, чтобы сделать все подкатагории флажком disapear, а также строки до тех пор, пока катагория не будет выбрана, а затем каждую из подкатагорий можно щелкнуть, чтобы предоставить подробную информацию.
У меня есть этот код, чтобы скрыть строки до тех пор, пока флажок не будет нажат. Приведенный выше код для скрытия флажка кажется работает, но он нарушает мой исходный код для скрытия строк для подкатагорий? Есть предложения?
Частная Суб CheckBox2_Click()
Если CheckBox2 = True, То
[262:266].Скрыто = Ложно
Остальное: [262:266].Скрытый = Истинный
Конец, Если
Конец Подводной Лодки
Заранее вам спасибо!

CHill60

Я обновил свое решение

Member 13626605

Спасибо вам за всю вашу помощь, я попробую это сделать...