如何定位Excel解算器的价值单元

时间:2015-05-24 11:04:03

标签: excel vba excel-vba solver

使用下面的代码,我试图通过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

1 个答案:

答案 0 :(得分:1)

<强> UNTESTED

尝试更改:

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

成:

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

这是因为Solver似乎不希望参数值为数字,它需要该数字的字符串等效

修改#1:

如果要在Active工作表上使用特定的单个单元格,则:

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