我正在尝试使用宏来实现GoalSeek方法,只要工作表中有任何更改,该宏就会自动运行。代码很简单,但收到此错误消息,我无法弄清楚如何解决。代码是:
public function actionGetStudiosByLatLong( $regionName = '', $latitude='', $longitude='') {
\Yii::$app->response->format = 'json';
return Location::getByRegionAndLatLong( $regionName, $latitude, $longitude );
}
其中" N45"是一个基于公式的细胞和" D49"是一个价值。我收到运行时错误消息" Range类的GoalSeek方法失败"。
感谢任何帮助。
答案 0 :(得分:2)
由于GoalSeek
将强制执行工作表计算,因此会触发Worksheet_Calculate
事件,该事件将调用CheckGoalSeek
,这将执行GoalSeek
,这将强制执行工作表计算,它将触发Worksheet_Calculate
事件,该事件将调用CheckGoalSeek
,这将执行GoalSeek
,这将强制进行工作表计算......
要避免此循环流,您需要禁用事件处理。
将Worksheet_Calculate
功能更改为:
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
CheckGoalSeek
Application.EnableEvents = True
End Sub
免责声明:我第一次尝试此操作时,它锁定了我的Excel副本。我第二次尝试它是有效的。