VBA Write what each main commands performs. Don't worry about what the code will perform, only in tell what the commands mean. Sub EffFrontier2() Dim prmin As Variant, prmax As Variant, pradd As Variant Dim niter As Integer Application.Run "SolverReset" SolverOk SetCell:=Range("portsd2"), MaxMinVal:=2, ValueOf:=0, ByChange:=Range("change2"), _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverAdd CellRef:="portsz1", Relation:=2, FormulaText:="$H$5" SolverSolve userfinish:=True prmin = Range("portret2").Value Application.Run "SolverReset" SolverOk SetCell:=Range("portret2"), MaxMinVal:=1, ValueOf:=0, ByChange:=Range("change2"), _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverAdd CellRef:="portsz1", Relation:=2, FormulaText:="$H$5" SolverSolve userfinish:=True prmax = Range("portret2").Value niter = Range("niter2").Value pradd = (prmax - prmin) / (niter - 1) Range("priter2") = prmin Application.Run "SolverReset" SolverOk SetCell:=Range("portsd2"), MaxMinVal:=2, ValueOf:=0, ByChange:=Range("change2"), _ Engine:=1, EngineDesc:="GRG Nonlinear" SolverAdd CellRef:=Range("portret2"), Relation:=2, FormulaText:="priter2" SolverAdd CellRef:="portsz1", Relation:=2, FormulaText:="$H$5" iter = 1 Do While iter <= niter SolverSolve userfinish:=True Range("portwts2").Copy Range("effwts2").Offset(iter, 0).PasteSpecial xlPasteValues Range("priter2") = Range("priter2").Value + pradd iter = iter + 1 Loop Application.CutCopyMode = False End Sub
VBA
Write what each main commands performs. Don't worry about what the code will perform, only in tell what the commands mean.
Sub EffFrontier2()
Dim prmin As Variant, prmax As Variant, pradd As Variant
Dim niter As Integer
Application.Run "SolverReset"
SolverOk SetCell:=Range("portsd2"), MaxMinVal:=2, ValueOf:=0, ByChange:=Range("change2"), _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="portsz1", Relation:=2, FormulaText:="$H$5"
SolverSolve userfinish:=True
prmin = Range("portret2").Value
Application.Run "SolverReset"
SolverOk SetCell:=Range("portret2"), MaxMinVal:=1, ValueOf:=0, ByChange:=Range("change2"), _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="portsz1", Relation:=2, FormulaText:="$H$5"
SolverSolve userfinish:=True
prmax = Range("portret2").Value
niter = Range("niter2").Value
pradd = (prmax - prmin) / (niter - 1)
Range("priter2") = prmin
Application.Run "SolverReset"
SolverOk SetCell:=Range("portsd2"), MaxMinVal:=2, ValueOf:=0, ByChange:=Range("change2"), _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:=Range("portret2"), Relation:=2, FormulaText:="priter2"
SolverAdd CellRef:="portsz1", Relation:=2, FormulaText:="$H$5"
iter = 1
Do While iter <= niter
SolverSolve userfinish:=True
Range("portwts2").Copy
Range("effwts2").Offset(iter, 0).PasteSpecial xlPasteValues
Range("priter2") = Range("priter2").Value + pradd
iter = iter + 1
Loop
Application.CutCopyMode = False
End Sub
Trending now
This is a popular solution!
Step by step
Solved in 2 steps