У меня есть таблица Excel, которая разделена на разные разделы с именованными диапазонами. Я хочу скрыть именованный диапазон, когда установлен флажок. Я могу сделать это для одного флажка, но я хотел бы иметь одну функцию, которая может скрыть соответствующий раздел на основе флажка вызова. Я планировал вызвать эту функцию из event_handlers, когда флажки нажаты, и передать флажок в качестве аргумента.
Есть ли способ получить доступ к объекту флажка, который вызывает обработчик события?
Это работает:
Sub chkDogsInContest_Click()
ActiveSheet.Names("DogsInContest").RefersToRange.EntireRow.Hidden = Not chkMemberData.Value
End Sub
Но вот что я хотел бы сделать:
Sub chkDogsInContest_Click()
Module1.Show_Hide_Section (<calling checkbox>)
End Sub
Эти функции определены в другом модуле:
'The format for the the names of the checkbox controls is
'CHECKBOX_NAME_PREFIX + <name>
'where "name" is also the name of the associated Named Range
Public Const CHECKBOX_NAME_PREFIX As String = "chk"
Public Function CheckName_To_SectionName(ByRef strCheckName As String)
CheckName_To_SectionName = Mid(strCheckName, CHECKBOX_NAME_PREFIX.Length() + 1)
End Function
Public Sub Show_Hide_Section(ByRef chkBox As CheckBox)
ActiveSheet.Names(CheckName_To_SectionName(chkBox.Name())).RefersTo.EntireRow.Hidden = True
End Sub