我有一个“黑匣子”excel模型与1张。它有2个输入,命名范围为“Input1”和“Input2”,以及一个输出,命名范围为“输出”。我写了一个宏以测试它的输入该模型的变化的敏感度,但我想知道如果有一个更优雅的方式来做到这一点:“压力测试”Excel模型框架
Sub LoopMacro()
Dim outrow As Integer
outrow = 1
For i = 1 To 10 Step 0.5
Range("Input1").Value = i
For j = 1 To 10 Step 0.5
Range("Input2").Value = j
Output outrow
outrow = outrow + 1
Next j
Next i
End Sub
Sub Output(outrow As Integer)
Sheets("Output").Cells(outrow, 1) = Range("Input1").Value
Sheets("Output").Cells(outrow, 2) = Range("Input2").Value
Sheets("Output").Cells(outrow, 3) = Range("Output").Value
End Sub
这种宏观的问题是,它需要的为每个输入变量循环,如果我有更多的输入,会变得非常乏味。我试图弄清楚是否有编写代码的方法,以便我可以定义n
输入(名为ranged“Input1”,“Input1”,“Inputn”)以及它们的最小值和最大值,并将宏自动循环输入Input1-Inputn的相关值
输入是否需要如您所示嵌套,或者它们可以是线性的? –
@Doug格兰西我不确定你的意思。在我展示的例子中,我想在我定义的范围内测试“Input1”和“Input2”的所有可能组合。 – Zach
在what-if分析菜单下查看Excel“数据表”:http://office.microsoft.com/en-us/excel-help/calculate-multiple-results-by-using-a-data-table- HP010072656.aspx。另见这里:http://stackoverflow.com/questions/4640336/using-a-sheet-in-an-excel-user-defined-function/4640866#4640866 – jtolle