【发布时间】:2020-12-16 16:30:17
【问题描述】:
我在 F15:F1649 中有公式,当自动计算打开时,每次单击鼠标都会刷新值(例如,F15:F1649 的每个单元格中都有一个 RAND() 函数)。我正在尝试运行蒙特卡洛模拟,复制 F15:F1649 中的动态数据,并将其作为值粘贴到 G15:G1649,然后再次复制并将刷新的数据粘贴到 H15:H1649,依此类推,直到完成 1000 次试验。
我自己录制了一个宏,但是代码很草率。请参阅下面的代码示例行:
Sub Monte_Carlo_Sim()
'
' Monte_Carlo_Sim Macro
'
'
Range("F15").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Selection.End(xlUp).Select
Range("G15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("H15").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("I15").Select
【问题讨论】:
-
我不确定这里的实际问题是什么?此代码是否有效?您需要了解什么?
-
代码有效,但是为了记录宏,必须手动将该范围作为值复制并粘贴到 1000 列中是非常麻烦的。此外,我目前只能进行大约 700 次试验,因为我相信我的代码行数可能会达到 VBA 允许的最大值?
-
如果您有编程专业知识,这个问题似乎很容易。我猜你没有这个?你有没有这样的事情。如果您没有专业知识,明智的做法是使用不会让您感到困惑的解决方案,以便您以后可以自己修补它。但是,从编程的角度来看,这种解决方案可能效率低下。
-
嗨,马克——你说得对,我没有任何编程专业知识哈哈。我只是在为数据集寻找更高效的宏。
标签: excel vba montecarlo