如何定位 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)
使用下面的代码,我正在尝试通过 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)