【问题标题】:Excel VBA: Conditional erase parts of worksheetExcel VBA:有条件地擦除工作表的部分
【发布时间】:2014-11-01 08:06:47
【问题描述】:

我有一本工作簿,其结构与此不甚相似(但更高级):

https://www.youtube.com/watch?v=UeGncSFijUM

那是:

(1) 一个工作表,其中一行进行了一些涉及 rand() 的计算,结果值被转移到下一行进行类似计算,最终结果出现在最多 250 行之后。

(2)Excel然后重复这250次计算20000次

(3)并对20000个独立的结果做一些计算。

很多都是通过函数完成的,我主要使用 VBA 来控制计算流程。

所有这一切都需要一些时间,我尝试逐步优化它。

现在每个 (1) 的结果很可能在第 250 行之前达到,平均第 125 行。如果在第 125 行满足该条件,我想删除其余的计算。说调用通过 if 语句擦除其余单元格内容的 VBA 脚本。

是否可以从函数中调用 VBA 语句?

【问题讨论】:

  • 您不能从工作表调用宏,但可以调用 UDF 函数。但是,UDF 不能更改任何单元格,只能更改调用它的单元格。我想某种公共布尔变量可能会停止循环的 VBA 操作,而 UDf 可以改变它的状态。

标签: vba excel montecarlo


【解决方案1】:

这是我对跳出框框思考的最佳尝试。

您能否在检查公式产生的特定值的 worksheet_change 事件中使用 Call MethodnameCallByName(wsWorksheet, sMethodname, VbMethod, vOptionalVariantToPass)

【讨论】:

    猜你喜欢
    • 2019-09-18
    • 2016-06-07
    • 2019-04-29
    • 2019-12-15
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    相关资源
    最近更新 更多