Я уже несколько дней искал решение следующей проблемы, но никак не могу понять.
У меня есть книга Excel с несколькими листами. Некоторые листы содержат код, а также есть несколько модулей с кодом. Имейте в виду, что названия листов, размещение и количество могут быть изменены конечным пользователем.
В листе с code.name "Tabelle 1" у меня есть следующий код:
Sub Reset_ToggleButton1()
If ToggleButton1.Value = True Then
ToggleButton1.Value = False
End If
End Sub
Насколько я понял, я могу активировать ToggleButtons только с кодом на соответствующем листе. Если это неправда, это могло бы быть возможным решением моей проблемы.
Далее я хотел бы вызвать подпрограмму Reset_ToggleButton1 () из модуля. Но, поскольку может быть несколько копий листа с переключателем и соответствующим кодом, я хотел бы сослаться на подпункт на активном листе.
Следующий код работал, но только для указанного листа.
Sub test()
Application.Run "Tabelle1.Reset_ToggleButton1"
End Sub
Я думаю, что мне нужно заменить «Tabelle1» на кодовое имя активного рабочего листа. Я знаю, что могу получить Code.Name с активного листа со следующим кодом:
Dim SheetCode As String
SheetCode = ActiveSheet.CodeName
Но я не знаю, как вставить его в Sub test () сверху.
Ваша помощь очень ценится!
С наилучшими пожеланиями Энн


ты можешь использовать
ActiveSheet.Reset_ToggleButton1
или же
Worksheets("Tabelle1").Reset_ToggleButton1
запустить его.
Стоит упомянуть, что вы можете указать рабочий лист:
Sub Test(WS As Worksheet)
WS.Reset_ToggleButton1
End Sub
Спасибо, это было легко! Я уверен, что пробовал что-то подобное раньше, но это как-то не сработало. Теперь работает отлично!