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