使用VBA是否可以在多个工作表中包含Excel的规划求解参考单元?

马丁·汤普森(Marten Thompson)

我已经在其他论坛上看到过这个问题,但我不认为它已经出现在这里。我希望分配给Solver宏的按钮位于与Solver的目标和变量不同的表中。所有目标和变量都位于同一张工作表中;即,在Sheet1中按下按钮会使Solver使用Sheet2中的值在Sheet2中执行。

其他论坛经常声称,Solver无法引用工作表之外的工作表中的单元格,但是我希望通过深入研究VBA代码来实现。我知道,通过在Sheet1中镜像Sheet2的值,可以很好地使用求解器。但是,这不是该程序的选项。

我试图使Sheet1中的按钮调用Sheet2中包含的Solver宏,但是该宏仍引用Sheet1中的单元格,而不是Sheet2中的单元格。(这实际上是在Sheet1中创建一个按钮以按Sheet2中的一个按钮)

然后,我尝试显式声明单元格,如下所示:

SolverOk SetCell:=ThisWorkbook.Sheets("Sheet2").Cells(12, 2), MaxMinVal:=2, ValueOf:=0, ByChange:=ThisWorkbook.Sheets("Sheet2").Range("$B$9:$B$10"), _
        Engine:=1, EngineDesc:="GRG Nonlinear"

但我得到:运行时错误'9'下标超出范围。

任何帮助或指示,将不胜感激。我不是超级用户,而是根据此任务的需要学习VBA。感谢您的时间。

恶臭

我通常使用的一种解决方法是激活要求解的工作表,调用求解器,然后重新激活具有按钮的工作表。这样的事情:

Sub solveForValues()

    ' Prevent Excel from updating the screen while switching sheets
    ' This is purely cosmetic
    Application.ScreenUpdating = False

    Dim wkb As Workbook
    Set wkb = ThisWorkbook

    ' Let's call "solver_sheet" your solver data sheet
    wkb.Worksheets("solver_sheet").Activate

    SolverReset
    SolverAdd CellRef:="$X$83", Relation:=2, FormulaText:="100000"
    SolverOk SetCell:="$X$83", MaxMinVal:=1, ValueOf:=0, ByChange:="$AC$1"
    SolverSolve True

    ' The sheet "button_sheet" contains the button 
    ' and references to the result cells from "solver_sheet" sheet
    wkb.Worksheets("button_sheet").Activate

    ' Turning screen updating back ON
    Application.ScreenUpdating = True

    ' Visual confirmation for the button
    MsgBox ("Done!")

End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

参考多个Excel工作表

VBA检查工作表中的行是否包含多个变量

Excel VBA-检查工作表中是否存在特定工作表和命名单元的功能

Excel-VBA检查工作表是否包含

Excel VBA - 使用应用程序输入框获取用户选择的单元格 - 是否可以获取用户工作表详细信息?

在使用 VB.NET DLL 的 Excel VBA 中,DLL 是否可能包含操作活动工作簿单元格/范围/等值的代码?

如何使用VBA使用多个下拉列表在Excel中隐藏多个工作表

连接Excel中多个工作表中的单元格

使用VBA从Excel工作表中的单元格中删除/修剪空格

如何使用参考单元格的值对另一个工作表中的excel数据求和

使用VBA根据Excel中的单元格值将数据拆分为多个工作簿

参考另一个工作表VBA在Excel中重命名工作表

如何使用VBA将多个字符串值添加到Excel工作表中的单元格

使用VBA在Excel中删除工作表

Excel:合并多个工作表中包含值的行

是否可以使用算术公式作为Excel中的单元格引用(无VBA)?

使用 Excel VBA 向多个用户发送包含表中相应信息的电子邮件

是否可以使用脚本在 Google Sheet 上的多个工作表中启用编辑?

是否可以使用Mac在VBA XL中创建工作表特定的命名范围

是否可以在已过滤的工作表上使用VBA代码?

使用VBA在多个Excel工作表中从不同范围创建PDF

Excel公式中的动态工作表参考

Excel:是否可以在不同的工作表中查找多个值并使用Sum函数将它们加在一起?

使用TestNG DataProvider时,是否可以从SAME Excel工作表中读取和写入参数?

是否可以在 angularJs 中使用 alasql 添加 Excel 工作表

excel VBA,在将多个CSV文件复制到一个工作簿中的单元格中创建带有工作表或文件名的列

是否可以在Excel 2010中计算跨多个工作表的带日期标记的变量并按日期列出?

使用VBA在Excel工作表中创建表

是否可以在不知道VBA Excel中位于哪个工作表的情况下访问命名范围?