Excel VBA – 更改公式值

我需要创build一个macros,可以更改3个单元格中的值,运行求解器以适应不断变化的约束,然后将求解值粘贴到列中。 重复。

在单元格L78,79和81中,我分别参考了列L,R和P.

这里基本上是我每次更新值时所做的:

L78 = **L4**, L79 = **R4**, L81 = **P4**, Run Solver Objective: $M$73 By changing variable: $L$80 Constraint: $M$73=**M4** Solve Copy $M$73 Paste **N4** 

然后,我会增加**的所有值1行并重复。

第一次在这里,所以我为任何可怜的格式道歉。

所以我设法想出了一些基本的VBA。 远非完美,因为它使用复制和粘贴(哈哈),但它为我的目的,这是运行二项式期权定价模型,并收集了几百个选项的隐含波动率。

代码是:

 Sub Macro1() Worksheets("Filtered Puts").Activate RowCount = 3 Do While Not IsEmpty(Worksheets("Filtered Puts").Range("H" & RowCount)) Range("L" & RowCount).Select Selection.Copy Range("L78").Select ActiveSheet.Paste Range("R" & RowCount).Select Selection.Copy Range("L79").Select ActiveSheet.Paste Range("P" & RowCount).Select Selection.Copy Range("L81").Select ActiveSheet.Paste Range("O73").Select SolverReset SolverOptions precision:=0.001 SolverOk SetCell:="$M$117", _ MaxMinVal:=1, _ ValueOf:=0, _ ByChange:="$L$80" SolverAdd CellRef:=Range("M" & RowCount), _ Relation:=2, _ FormulaText:="$M$117" SolverSolve userFinish:=True SolverFinish keepFinal:=1 Range("$L$80").Select Selection.Copy Range("N" & RowCount).Select ActiveSheet.Paste RowCount = RowCount + 1 Loop End Sub