Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: как определить  - на какой объект нажали
     
    
Добавлено: 17.12.08 17:22
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 Sergei | Web-сайт: www.goldpirating.com
      
       
  
Привет, вопрос такой 
 
    
создаю 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