当单元格值按公式更改时自动运行goalseek

时间:2016-07-13 01:28:33

标签: excel vba excel-vba

每次单元格“E9”的值发生变化时,我需要运行一个goalseek,单元格E9 = Rand(),有没有办法做到这一点? goalseek和单元格E9在不同的表格上。我在网上找到的VBA脚本如下,它不起作用。一旦我点击F9,我的Excel就会不断迭代并给我“#NUM!”我在这里错过了什么?我的目标是与细胞E9有关。单元70是E9的函数。

在Sheet1中我有:

Private Sub Worksheet_Calculate()

 Dim KeyCell As Range
 Set KeyCell = Range("E9")

If Not Application.Intersect(KeyCell, Range("E9")) _
Is Nothing Then

Backsolve

End If
End Sub

在Module1中我有:

Sub Backsolve()

Sheets("Backsolve").Select
Range("C70").Select
Range("C70").GoalSeek Goal:=0, ChangingCell:=Range("C71")
Sheets("Sheet1").Select

End Sub

请帮忙!

1 个答案:

答案 0 :(得分:0)

可能会有效:

在Sheet1中:

Private Sub Worksheet_Calculate()
     Backsolve
End Sub

在Module1中

Sub Backsolve()    
    Sheets("Backsolve").Range("C70").GoalSeek Goal:=0, ChangingCell:=Range("C71")
End Sub