У меня есть лист с десятками текстовых полей. Некоторые из них выполняют один и тот же макрос, в то время как другие выполняют другой макрос и т.д. У меня есть пять групп текстовых полей, выполняющих пять различных макросов. Вместо того чтобы писать отдельный макрос для каждого текстового поля, я сгруппировал их вместе. Теперь я хочу определить, какое текстовое поле выполняет макрос, чтобы я мог выполнить фильтрацию для ограничения результатов.

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

1 ответ1

0

Установите все флажки (элементы управления формой), чтобы вызывать один и тот же макрос. В макросе вы можете проверить, какой именно флажок был выбран, и его различные свойства следующим образом:

Dim chk As CheckBox
Dim str As String

Sub MyMacro()
    Set chk = ActiveSheet.CheckBoxes(Application.Caller)
    str = "CheckBox with Index=" & chk.Index & " and Name='" & chk.Name & "' and Value="
    If chk.Value = Checked Then
        str = str & "True was clicked!"
    Else
        str = str & "False was clicked!"
    End If
    MsgBox str
End Sub

1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .