Excel VBA解算器函数错误

Excel VBA解算器函数错误,excel,vba,solver,Excel,Vba,Solver,我有一个VBA代码,它似乎可以在PC上正常工作,但当我试图在Mac上运行相同的代码时,它就不能正常工作。代码设计为从指定列开始,在本例中为3。该代码用于查找最小方差边界。下面是带有列和行引用的工作表示例 Row Col3 Col4 Col5..... 26 WeightAssetA .3 27 WeightAssetB .3 28 WeightAssetC

我有一个VBA代码,它似乎可以在PC上正常工作,但当我试图在Mac上运行相同的代码时,它就不能正常工作。代码设计为从指定列开始,在本例中为3。该代码用于查找最小方差边界。下面是带有列和行引用的工作表示例

 Row                         Col3     Col4    Col5.....
 26      WeightAssetA         .3
 27      WeightAssetB         .3
 28      WeightAssetC         .2
 29      WeightAssetD         .2
 30            Sum            1
 31      Target Return        .05   
 32      Variance
 33
 34      Expected Return
该代码旨在通过更改第26行到第29行来查找第32行方差的最小值。约束条件是第30行必须等于1(26:29之和)并与目标回报相匹配。下面是我当前的代码。当我运行时,它似乎在每个列中循环,但在26列中,只有包含最低方差的列被更改为包含更新的安全权重

关于为什么它循环遍历每一列,但不使用正确的权重更新每一列,只更新方差最小的列,有什么建议吗?谢谢

Sub Optimizer()
'
' Frontier Macro
' Macro for Developing Portfolio Frontier
'
' Keyboard Shortcut: Ctrl+Shift+M
'
'
Dim col As Integer

For col = 3 To 29

   SolverReset

   SolverOptions AssumeNonNeg:=False

   SolverOk SetCell:=Cells(32, col), MaxMinVal:=2, ByChange:=Range(Cells(26, col), Cells(29, col))

   SolverAdd CellRef:=Cells(30, col), Relation:=2, FormulaText:="1"

   SolverAdd CellRef:=Cells(31, col), Relation:=2, FormulaText:=Cells(31, col)


   SolverSolve UserFinish:=True

Next col

End Sub

给我发电子邮件完整的文件,我会帮你看的