2013-04-26 90 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

什麼是細胞T7和電池V7? – chuff 2013-04-26 15:38:52

+0

單元格T7是破損費,等於以'R'折現的一系列現金流的現值與一系列貼現在國債利率X加上溢價X的現金流的現值之間的差額。單元格V7是保費X. – user2324441 2013-04-26 16:09:28

+1

使用Worksheet_Change事件。看起來像目標尋找迭代觸發工作表重新計算,這是觸發一個新的目標尋求... – chuff 2013-04-26 16:55:43

回答

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 2013-04-27 11:31:31