Страница: 1 |
Страница: 1 |
Вопрос: как определить - на какой объект нажали
Добавлено: 17.12.08 17:22
Автор вопроса: Sergei | Web-сайт:
Привет, вопрос такой
создаю 2 прямоугольника кодом, назначаю им
процедуру при нажатии, все работает:
Private Sub CommandButton1_Click()
For i = 1 To 2
ActiveSheet.Shapes.AddShape(msoShapeRectangle, i * 100, 100, 80, 30).Select
ActiveSheet.Shapes(i + 1).OnAction = "Sheet1.AddNextLevel"
Next i
End Sub
Public Sub AddNextLevel(Optional z As Variant = 0)
MsgBox z
End Sub
Но мне нужно, чтобы определялось - на какой именно прямоугольник нажали. Для этого я пытался ввести аргумент
в вызов процедуры:
Private Sub CommandButton1_Click()
For i = 1 To 2
ActiveSheet.Shapes.AddShape(msoShapeRectangle, i * 100, 100, 80, 30).Select
ActiveSheet.Shapes(i + 1).OnAction = "Sheet1.AddNextLevel(" & i + 1 & ")"
Next i
End Sub
Public Sub AddNextLevel(Optional z As Variant = 0)
MsgBox z
End Sub
Однако в ответ ругательство:
Run-time error '1004':
Formula is too complex to be assigned to object.
Как это сделать чтобы работало? Ну или глобально - как мне определить - на какой из прямоугольников было сделано нажатие (прямоугольников может быть и 100, и 1000, так что нужно динамически).
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Nytrogen
Вопросов: 18
Ответов: 186
Профиль | | #1
Добавлено: 17.12.08 18:00
Подход верный, но Вы допускаете типичную ошибку:
Исходя из Вашего уровня, думаю, что объяснения не требуются
Номер ответа: 2
Автор ответа:
Father
Вопросов: 0
Ответов: 159
Профиль | | #2
Добавлено: 21.12.08 05:35