2013-04-26 2 views
0

Я хочу применить поиск цели по нескольким строкам, когда есть изменение в любой ячейке рабочего листа. Я хочу применить это от строки 7 к строке 11. Первая проблема, с которой я сталкиваюсь, заключается в том, что excel сбой каждый раз, когда я запускаю это. Я только начинаю изучать VBA, поэтому любая помощь очень высоко оценена. Спасибо!Автоматический поиск цели по ячейкам

Мой код ниже:

Option Explicit 

Private Sub Worksheet_Calculate() 
CheckGoalSeek 
End Sub 

Private Sub CheckGoalSeek() 
Range("T7").GoalSeek Goal:=0, ChangingCell:=Range("V7") 
End Sub 
+0

Что находится в ячейке Т7 и клетки V7? – chuff

+0

Сотовый T7 - ​​это плата за полом, которая равна разнице между текущей стоимостью серии денежных потоков, дисконтированных по курсу «R», и текущей стоимостью серии денежных потоков, дисконтированных по курсу Казначейства плюс премиальный X. Cell V7 является премия X. – user2324441

+1

Используйте событие Worksheet_Change. Похож на истребитель поиска цели, вызывает пересчет рабочего листа, который запускает новую цель поиска ... – chuff

ответ

1

Вы, кажется, вызывая бесконечный цикл: расчет рабочего листа -> цель искать расчет -> расчет рабочего листа -> ...

Одним из вариантов является изменение событие, которое запускает цель.

Я бы порекомендовал событие Worksheet_Change. Код события будет таким же, за исключением вспомогательной декларации, которая будет Private Sub Worksheet_Change(ByVal Target As Range).

Простой For цикл будет выполнять цель Ищи на разных строках:

Option Explicit 

Private Sub CheckGoalSeek() 
    Dim i as Long 
    For i = 7 to 11 
     Range("T"& i).GoalSeek Goal:=0, ChangingCell:=Range("V"& i) 
    Next 
End Sub 
+0

Это отлично работает, спасибо! – user2324441

Смежные вопросы