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