GoalSeek范围类的方法失败
我试图实现GoalSeek方法使用一个macros,每当工作表中有任何更改将自动运行。 代码很简单,但得到这个错误消息,我不知道如何解决。 代码是:
Private Sub Worksheet_Calculate() CheckGoalSeek End Sub Private Sub CheckGoalSeek() Dim wb As Workbook Dim ws As Worksheet Set wb = ActiveWorkbook Set ws = wb.Sheets("MAIN") ws.Range("N45").GoalSeek Goal:=0, ChangingCell:=ws.Range("D49") End Sub
其中“N45”是基于公式的单元格,“D49”是一个值。 我得到运行时错误消息“范围类的GoalSeek方法失败”。
任何帮助表示赞赏。
由于GoalSeek
将强制执行工作表计算,因此将触发Worksheet_Calculate
事件,该事件将调用CheckGoalSeek
,它将执行GoalSeek
,这将迫使工作表计算,这将触发Worksheet_Calculate
事件,该事件将调用CheckGoalSeek
,该事件将执行GoalSeek
,这将迫使工作表计算,这将…
为了避免这种循环stream,你需要禁用事件处理。
将您的Worksheet_Calculate
函数更改为:
Private Sub Worksheet_Calculate() Application.EnableEvents = False CheckGoalSeek Application.EnableEvents = True End Sub
免责声明:我第一次尝试这个,locking了我的Excel副本。 我第二次尝试它的工作。