Excel VBA Userform читает текущие значения при открытии - PullRequest
1 голос
/ 19 июня 2019

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

Итак, я создал кнопку, которая открывает пользовательскую форму (называемую «hider») со следующим кодом:

Private Sub CommandButton1_Click()
Hider.Show
End Sub

Пользовательская форма содержит два флажка, которые скрывают выбранные столбцы, используя:

Private Sub Week3_Click()
Range("N:Q").Columns.Hidden = Not Week3
End Sub

Так что, если флажок установлен, флажки отображаются, а если флажок снят,скрыты, эта часть работает, за исключением того, что каждый раз, когда пользовательская форма открывается, она сбрасывает флажки в исходное состояние «не проверено», в то время как столбцы остаются скрытыми (что нормально).

Так что мой вопрос:

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

1 Ответ

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

Если я правильно понимаю ваш вопрос («... или действие для чтения всех текущих значений при открытии пользовательской формы»), просто используйте следующий код в модуле кода пользовательской формы для синхронизации вашего флажка при открытии:

Private Sub UserForm_Initialize()

'Me.Week3.Value = IIf(ActiveSheet.Range("N:Q").Columns.Hidden = True, False, True)
Me.Week3.Value = Not ActiveSheet.Range("N:Q").Columns.Hidden  ' simplified due to comment thx Mathieu Guindon

' ...
End Sub
...