Я работаю над следующим кодом VBA, который управляет двумя кнопками:
Макрос 1
Sub ON_SWITCH()
'Set Position, Color
Worksheets(1).Shapes("ON_OFF1").Select
With Selection
.ShapeRange.IncrementLeft 30
End With
Worksheets(1).Shapes("ON_OFF11").Select
With Selection
.ShapeRange.TextFrame2.TextRange.Characters.Text = "ON"
.ShapeRange.TextFrame.HorizontalAlignment = xlHAlignLeft
.ShapeRange.Fill.ForeColor.RGB = RGB(118, 208, 122)
End With
'Change cell in reference sheet
Sheets("Sheet1").Range("a1").Value = "ON"
'Set OFF_SWITCH on click
Sheets("Sheet1").Shapes("ON_OFF1").OnAction = "OFF_SWITCH"
'I'd like to remove...
Sheets("Sheet1").Range("A1").Activate
End Sub
Макрос 2
Sub OFF_SWITCH()
'Set Position, Color
Worksheets(1).Shapes("ON_OFF1").Select
With Selection
.ShapeRange.IncrementLeft -30
End With
Worksheets(1).Shapes("ON_OFF11").Select
With Selection
.ShapeRange.TextFrame2.TextRange.Characters.Text = "OFF"
.ShapeRange.TextFrame.HorizontalAlignment = xlHAlignRight
.ShapeRange.Fill.ForeColor.RGB = RGB(250, 118, 118)
End With
'Change cell in reference sheet
Sheets("Sheet1").Range("a1").Value = "OFF"
'Set OFF_SWITCH on click
Sheets("Sheet1").Shapes("ON_OFF1").OnAction = "ON_SWITCH"
'I'd like to remove...
Sheets("Sheet1").Range("A1").Activate
End Sub
Это создает кнопку переключения в моей электронной таблице, переместив / отформатировав 2 фигуры и заполнив одну из фигур текстом при нажатии. Я хочу, чтобы у него был переключатель ВКЛ / ВЫКЛ с определенным стилем.
Однако приведенный выше код работает; когда я запускаю код в защищенном режиме, он выдает ошибку времени выполнения «438» и «-2147024809 (80070057)». Я также попытался добавить возобновление при ошибке, но текст формы больше не будет меняться с «Выкл.» на «Вкл.» и наоборот. наоборот. Я бы предпочел не защищать и не защищать, но я открыт, если это все параметры, которые у меня остались.
Я также хотел бы удалить часть кода активного диапазона, потому что она создает выделенную ячейку, но я не уверен, возможно ли это в Excel.