gpt4 book ai didi

excel - 使用 VBA 将约束添加到求解器工具

转载 作者:行者123 更新时间:2023-12-04 20:20:16 25 4
gpt4 key购买 nike

我正在尝试向我的 excel VBA 求解器解决方案添加一些新的约束,并且在运行代码时遇到了一些奇怪的行为。我想为最小化问题执行以下操作并且遇到了一些麻烦:

正在调整的两个杠杆必须 <= 35%,但是当我添加约束时:

SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35"
SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35"

当想法是尽可能低时,他们会自动将自己设置为 35%。如果没有这个约束,对于我要验证的问题,单元格确实将自己设置为低于 35%,所以我知道最佳解决方案低于 35%。

另外我想知道是否有办法确保 a) 单元格以 5% 的增量进行优化,并且结束值不包括小数。即 10.00% 而不是 10.23%

很抱歉这个冗长的问题,我很感激我得到的任何帮助。

这是完整的代码:
    Private Sub CommandButton2_Click()

Dim i As Integer


i = 2

For i = 2 To 5

Range("$C$14").Value = Application.Workbooks("test_model_2.xls").Worksheets("All Models").Cells(i, 2).Value
SolverReset
SolverAdd CellRef:="$F$70", Relation:=3, FormulaText:="5000"
SolverAdd CellRef:="$C$39", Relation:=2, FormulaText:=".35"
SolverAdd CellRef:="$C$40", Relation:=2, FormulaText:=".35"
SolverOk SetCell:="$F$70", MaxMinVal:=2, ValueOf:="0", ByChange:="$C$39:$C$40"
SolverSolve True
MsgBox "i is:" & i

Next i

End Sub

最佳答案

见:http://msdn.microsoft.com/en-us/library/aa272233(v=office.10).aspx

您正在使用关系:= 2,相当于“=”。您应该使用 1 (<=)

至于让您的解决方案最接近 0.05,只需设置一些其他单元格,这些单元格会输入“百分比”单元格,并将它们限制为整数值。

例如:

A1 = 7           (set solver to change this, and constrain to integer)
B1 = A1 * 0.05 (your percent cell, constrain to <=0.35)

关于excel - 使用 VBA 将约束添加到求解器工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7324693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com