以下代码行在我尝试使用它时给我Sub或Function未定义。我试过仔细检查我的拼写,重命名它,在网上查找其他问题(大多数其他错误都忘记在工作表或工作表之后添加s),但我不知道我的代码有什么问题。我最初从宏录制器中获取此代码。
我在不同的纸张上多次使用这个子,但这并没有影响我的其他相似的潜艇。
Sub SolverSolver()
SolverOk SetCell:="$G$3", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$4,$G$6", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End Sub
也许它被使用的方式是错误的,所以我已经添加了它在下面调用的方式。这一行是一个简单的大型子命令,比如为一个单元格命名,这个大的简单子也会重复多次。但是,即使尝试通过开发人员选项卡直接运行sub来运行sub,它仍然有相同的错误,所以我不会想到它被调用的方式。
ActiveSheet.Buttons.Add(630.75, 52.5, 74.25, 26.25).OnAction = "SolverSolver"
非常感谢任何帮助!
答案 0 :(得分:3)
您没有将引用设置为Solver
。使用'
s manadatory。设置如下:在VBA编辑器中,转到工具 - >参考文献 - >并选择解算器。单击“确定”。
还要确保您已启用了解算器加载项,在Excel中,您可以通过文件启用它 - >选项 - >加载项,这里选择管理下拉列表下的Excel加载项,然后单击go。在下一个屏幕上,选中Sover加载项,然后单击“确定”。
正如GSerg所提到的,如果您的SolverSolver子在一个工作表模块中,那么您需要在操作参数值中包含模块名称。因此,如果sheet1包含sub,那么
ActiveSheet.Buttons.Add(630.75, 52.5, 74.25, 26.25).OnAction = "Sheet1.SolverSolver"