Val*_*l.F 0 excel vba excel-2010
每当我尝试使用它时,以下代码行都会给我 Sub 或 Function not defined 。我试过仔细检查我的拼写,重命名它,在线查找其他问题(大多数其他错误是忘记在工作表或工作表后添加 s),但我不知道我的代码有什么问题。我最初是从宏记录器中获得此代码的。
我在不同的工作表上多次使用这个子,但这并没有影响我的其他类似的子。
Sub SolverSolver()
SolverOk SetCell:="$G$3", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$4,$G$6", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End Sub
Run Code Online (Sandbox Code Playgroud)
也许它的使用方式有问题,所以我在下面添加了它的调用方式。这一行在简单命令的一个大子中,比如给一个单元一个名字,这个大的简单子也重复多次。但是,即使尝试通过直接通过开发人员选项卡运行 sub 来运行它,它仍然有相同的错误,所以我认为这不是调用 sub 的方式。
ActiveSheet.Buttons.Add(630.75, 52.5, 74.25, 26.25).OnAction = "SolverSolver"
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
您没有将参考设置为Solver. 使用强制的求解器函数。像这样设置:在 VBA 编辑器中,转到工具 --> 参考 --> 并选择求解器。单击确定。
还要确保您已启用 Solver Add-In,在 Excel 中,您可以通过 File--> Options --> Add-ins 启用它,这里在 manage 下拉列表下选择 Excel Add-Ins 并单击 go。在下一个屏幕上,选中 Sover Add-In,然后单击 OK。
正如 GSerg 所提到的,如果您的 SolverSolver sub 位于工作表模块中,那么您需要在操作参数值中包含模块名称。所以如果 sheet1 包含 sub 那么
ActiveSheet.Buttons.Add(630.75, 52.5, 74.25, 26.25).OnAction = "Sheet1.SolverSolver"
Run Code Online (Sandbox Code Playgroud)