Excel 解算器VBA,如何粘贴;SolverSolve返回值“;每行

Excel 解算器VBA,如何粘贴;SolverSolve返回值“;每行,excel,vba,solver,Excel,Vba,Solver,我已经创建了以下宏,它通过一组行循环,优化每行的产品价格 Sub OptimizePrice() Dim i As Integer ActiveWorkbook.ActiveSheet.Activate For i = 5 To 20 SolverReset SolverOk SetCell:="$K$" & i, MaxMinVal:=1, ByChange:="$B$" & i, Engine:=1 SolverAdd CellRef:

我已经创建了以下宏,它通过一组行循环,优化每行的产品价格

Sub OptimizePrice()
Dim i As Integer
ActiveWorkbook.ActiveSheet.Activate
For i = 5 To 20
SolverReset
SolverOk SetCell:="$K$" & i, MaxMinVal:=1, ByChange:="$B$" & i, Engine:=1
SolverAdd CellRef:="$B$" & i, Relation:=1, FormulaText:="$E$" & i
SolverAdd CellRef:="$F$" & i, Relation:=1, FormulaText:="$G$" & i
SolverSolve True
Range("$L$" & i)= SolverSolve Return Value
Next i
End Sub
有时解算器会找到最优解,有时则不会。我希望为“L”列中的每一行粘贴宏,这是操作的结果,根据以下网页中提供的说明,范围从0到20:

我试图用这行代码“Range($L$”&I)=SolverSolve Return Value”来实现这一点,但这似乎不是获取returnvalue类型的正确方法

谢谢你的帮助

更改此行:

Range("$L$" & i)= SolverSolve Return Value
变成这样:

ws.Cells(i, "L").Value = SolverSolve

我还建议使用工作表的声明变量(
ActiveWorkbook.ActiveSheet.Activate

原因是,如果我们使用上述行,我们希望确保代码在“正确”的工作表上运行

Dim ws As Worksheet
Set ws = ActiveWorkbook.Worksheets("Sheet1")
ws.activate 'Should be avoided but can be nice for now, since you might avoid to rewrite some code.
更改此行:

Range("$L$" & i)= SolverSolve Return Value
变成这样:

ws.Cells(i, "L").Value = SolverSolve

我还建议使用工作表的声明变量(
ActiveWorkbook.ActiveSheet.Activate

原因是,如果我们使用上述行,我们希望确保代码在“正确”的工作表上运行

Dim ws As Worksheet
Set ws = ActiveWorkbook.Worksheets("Sheet1")
ws.activate 'Should be avoided but can be nice for now, since you might avoid to rewrite some code.

这样行吗<代码>范围(“$L$”&i)=SolverSolve返回值->
单元格(i,“L”)。值=SolverSolve
谢谢它的工作,我刚刚根据您的建议修改了我的代码:单元格(i,“L”)。值=SolverSolve。然而,我没有看到一个按钮接受你的帖子作为答案!不确定我是否必须等待。我很高兴它成功了:)。原因是我没有把它作为一个答案,而是作为一个评论。我发布了一个答案(如果你愿意的话可以接受)和一些关于
ActiveWorkbook.ActiveSheet.Activate
的小建议。快乐编码:)!!这样行吗<代码>范围(“$L$”&i)=SolverSolve返回值->
单元格(i,“L”)。值=SolverSolve
谢谢它的工作,我刚刚根据您的建议修改了我的代码:单元格(i,“L”)。值=SolverSolve。然而,我没有看到一个按钮接受你的帖子作为答案!不确定我是否必须等待。我很高兴它成功了:)。原因是我没有把它作为一个答案,而是作为一个评论。我发布了一个答案(如果你愿意的话可以接受)和一些关于
ActiveWorkbook.ActiveSheet.Activate
的小建议。快乐编码:)!!