VBA Sub没有为求解器定义

下面的代码行给我没有定义的Sub或Function,只要我尝试使用它。 我已经尝试了双重检查拼写,重命名,在网上查找其他问题(大多数其他错误忘记在工作表或工作表之后添加),但我不知道我的代码有什么问题。 我最初从macroslogging器得到这个代码。

我在不同的工作表上多次使用这个子,但是这并没有影响我的其他类似的子工具。

Sub SolverSolver() SolverOk SetCell:="$G$3", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$4,$G$6", _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverSolve End Sub 

也许它被使用的方式是错误的,所以我添加了下面的方法。 这条线是简单命令的一大部分,就像给一个单元格一个名字,这个大的简单的子部分也重复多次。 但是,即使试图通过直接运行它通过开发人员标签运行子,它仍然有相同的错误,所以我不认为它的方式子被调用。

 ActiveSheet.Buttons.Add(630.75, 52.5, 74.25, 26.25).OnAction = "SolverSolver" 

任何帮助将不胜感激!

你没有参考Solver 。 使用Solverfunction,这是pipe理的。 像这样设置:在VBA编辑器中,转到工具 – >参考 – >,然后select求解器。 点击OK。

在这里输入图像说明

另外请确保您已经启用了解算器加载项,在Excel中,您可以通过文件 – >选项 – >加载项来启用它,这里selectpipe理下拉列表中的Excel加载项,然后单击开始。 在下一个屏幕上,检查Sover加载项,然后单击确定。


正如GSerg所提到的,如果你的SolverSolver子文件在一个工作表模块中,那么你需要在模块名称中join参数值。 所以,如果sheet1包含子然后

 ActiveSheet.Buttons.Add(630.75, 52.5, 74.25, 26.25).OnAction = "Sheet1.SolverSolver"