vba - Excel 2016 VBA 求解器约束
问题描述
我正在尝试对一列值运行自动求解器。目标单元格、参考单元格和约束单元格都在同一行中,并且在整个列中运行求解器时,它们会随着目标单元格向下移动。在要求保持第三个单元格(取决于参考单元格值)大于或等于第四个单元格的约束下,必须通过更改同一行上的参考单元格来最小化目标单元格。没有一个单元格包含整数,所有单元格都包含十进制值。
恢复:
目标单元(要最小化):P13
参考单元(更改单元):L13
约束(其中 M13 取决于 L13):M13 >= F13
全部向下到第 8795 行,相应地移动前面提到的所有单元格。
求解器工作正常,逐行手动运行,但试图自动化它以避免 8762 次迭代,它不尊重约束。我试图删除“”,添加 SolverReset 并将约束放在说明之上,但没有任何效果。代码是:
Private Sub CommandButton1_Click()
Dim count As Integer
count = 13
Do While count <= 8795
SolverOk SetCell:=Cells(count, 16), MaxMinVal:=2, ByChange:=Cells(count, 12)
SolverAdd CellRef:=Cells(count, 13), Relation:=3, FormulaText:=Cells(count, 6)
SolverSolve userfinish:=True
count = count + 1
Loop
End Sub
我试图更改约束,我注意到错误可能出在哪里:运行代码后,如果我打开求解器,我可以看到代码使用的最后一个约束。正如您在下图中看到的,我尝试设置一个新的约束 L13<=H13,其中 H13= 9,272 但求解器有 9272190 .... 也许它没有“看到”小数点分隔符。任何想法?
感谢您的时间。
解决方案
推荐阅读
- r - 在 R 的正则表达式中使用组和反向引用 - stringr::str_replace
- javascript - D3 只在返回或前进到页面时渲染 SVG 图表
- router - 使用 Wireshark 的混杂模式,无法看到 WiFi 路由器发送到同一网络上的另一台设备的数据包
- ms-access - Microsoft.ACE.OLEDB.12.0 提供程序未在本地计算机上注册,即使它实际上已安装
- php - PHP保持读取文件新行而不每5秒退出一次
- flutter - 如何在 ListView(as Column) 中呈现 ListView(as Row)?
- javascript - 为什么 windows.focus() 不能在所有情况下工作 IE11
- android - 服务同步不适用于 API => 级别 26
- amazon-web-services - AWS Managed Blockchain - 无法解析 Fabric 证书颁发机构端点
- mysql - 如何修复 #2014 - 命令不同步;从控制台运行存储过程