如何定位 Excel 求解器的值单元格

How to Target Excel Solver's Value Cell

使用下面的代码,我正在尝试通过 Excel VBA 使用求解器。这样做的原因是因为我将它用于大量值列表并且因为我希望通过单元格定位我想要解决的值,但是由于某种原因我遇到了 ValueOf:=SingleCell.Offset(-1, 1).Value, _ If我将其更改为 ValueOf:="-180" (或任何其他数字)它工作正常。我的目标是 link 它到一个单元格,随着单元格的变化。

信息: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

未测试

尝试更改:

ValueOf:=SingleCell.Offset(-1, 1).Value

进入:

ValueOf:=CStr(SingleCell.Offset(-1, 1).Value)

这是因为 Solver 似乎不需要 number 作为参数值,它需要数字的 string equivalent

编辑#1:

如果您想使用活动工作表上的特定单个单元格,则:

ValueOf:=CStr(Range("O2").Value)