使用下面的代码,我试图通过Excel VBA使用求解器。这样做的原因是因为我将它用于大量的值列表,因为我希望通过单元格来定位我想要解决的值,但是出于某种原因我遇到了问题ValueOf:=SingleCell.Offset(-1, 1).Value, _
如果我将其更改为ValueOf:="-180"
(或任何其他数字),它可以正常工作。我的目标是将其链接到一个单元格,因为单元格不同。
信息:SingleCell.Offset(-1, 1).Value, _
的值为-180
编辑1
Sub WatchlistSolver()
Dim SingleCell As Range
Range("N2").Select
'Need to link account value
Do
ActiveCell.Offset(1, 0).Select
SolverReset
SolverOk SetCell:=ActiveCell.Offset(0, 11).Address, _
MaxMinVal:=3, _
ValueOf:=SingleCell.Offset(-1, 1).Value, _
ByChange:=ActiveCell.Address
SolverSolve userFinish:=True
ActiveCell.Offset(0, 0) = Int(ActiveCell.Value)
Loop Until ActiveCell.Offset(0, -1).Value = ""
End Sub
编辑2
Sub WatchlistSolver()
Range("N2").Select
'Need to link account value
Do
ActiveCell.Offset(1, 0).Select
SolverReset
SolverOk SetCell:=ActiveCell.Offset(0, 11).Address, _
MaxMinVal:=3, _
ValueOf:=CStr(Range("O1").Value), _
ByChange:=ActiveCell.Address
SolverSolve userFinish:=True
ActiveCell.Offset(0, 0) = Int(ActiveCell.Value)
Loop Until ActiveCell.Offset(0, -1).Value = ""
End Sub
答案 0 :(得分:1)
<强> UNTESTED 强>
尝试更改:
ValueOf:=SingleCell.Offset(-1, 1).Value
成:
ValueOf:=CStr(SingleCell.Offset(-1, 1).Value)
这是因为Solver似乎不希望参数值为数字,它需要该数字的字符串等效。
修改#1:强>
如果要在Active工作表上使用特定的单个单元格,则:
ValueOf:=CStr(Range("O2").Value)