Sub Goalsick()
With Workbooks("Книга1.xlsm" ).Worksheets("Лист1" )
If (Range("D27")= 1) Then
Range("H6").GoalSeek Goal:=0.262, ChangingCell:=Range("E25" )
ElseIf (Range( "D27" ) = 2) Then
Range("H6" ).GoalSeek Goal:=0.298, ChangingCell:=Range("E25" )
End If
End With
End Sub
Также в листе прописан следующий макрос:
Код
Private Sub Worksheet_Calculate()
With Workbooks("Книга1.xlsm" ).Worksheets("Лист1" )
Application.EnableEvents = False
If Range("E31") = 0 Then Range("E25" ) = 200000
Application.EnableEvents = True
End With
End Sub
На "Листе 1" есть кнопка которая запускает макрос, необходимо сделать чтобы на Листе 2 была кнопка которая тоже запускает этот макрос, создаю кнопку привязываю к этому макросу, кнопка не запускает макрос. Пробовал без кнопки запустить макрос находясь на Листе 2 макрос также не запускается. Честно не силен в VBA.
Exlevel написал: создаю кнопку привязываю к этому макросу, кнопка не запускает макрос
Вы уверены? Вы ставили точку останова на Sub Goalsick и останова не было? В процедуре есть оператор With, но он фактически не работает, поскольку Range без указания принадлежности относятся к активному листу. Надо:
Код
Sub Goalsick()
With Workbooks("Книга1.xlsm").Worksheets("Лист1")
If .Range("D27") = 1 Then
.Range("H6").GoalSeek Goal:=0.262, ChangingCell:=.Range("E25")
ElseIf .Range("D27") = 2 Then
.Range("H6").GoalSeek Goal:=0.298, ChangingCell:=.Range("E25")
End If
End With
End Sub