首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机数表在循环中不断变化。

随机数表在循环中不断变化。
EN

Stack Overflow用户
提问于 2016-08-29 08:40:22
回答 1查看 964关注 0票数 0

我有一张带有随机数和循环的工作表。问题是:我需要刷新工作表并重新计算工作表中的所有数字。但是,随机数只应在循环中更改一次。现在,它们一直在变化,代码没有完成。有谁知道,我怎么能每次只刷新一次随机数呢?任何帮助都是非常感谢的。

代码语言:javascript
复制
  Sub MonteCarlo()
  Application.ScreenUpdating = False
   Dim x As Integer

Application.Calculation = xlManual

        For x = 1 To 1
        Do
        Worksheets("Ex-Ante TE").Calculate

        DoEvents
        Loop While Not Application.CalculationState = xlDone

     Worksheets("Monte Carlo").Range("A" & x).Value = Worksheets("Ex-Ante Te").Range("B2").Value
    Worksheets("Monte Carlo").Range("B" & x).Value = Worksheets("Ex-Ante Te").Range("B3").Value
    Worksheets("Monte Carlo").Range("C" & x).Value = Worksheets("Ex-Ante Te").Range("B4").Value

        Next

Application.ScreenUpdating = True
  Application.Calculation = xlAutomatic

End Sub
EN

回答 1

Stack Overflow用户

发布于 2016-08-29 09:00:50

也许我弄错了你的问题,但据我所知,我猜你有一张纸,里面有

  • =RAND()公式,您希望在每个For x-Loop上计算一次
  • 其他公式,您希望在每个For x-Loop中计算不止一次,这意味着在每个Do-Loop中,这是嵌套在For x-Loop中的。

一个可能的解决方案可能是单独计算某些范围(或命名范围),其内容如下

Worksheets("Ex-Ante Te").Range("A" & x).Calculate

Worksheets("Ex-Ante Te").Range("myNamedRange").Calculate

在你的Do-Loop里。

编辑:正如z32a7ul指出的,你不需要等待计算完成,所以你就不需要Loop While Not Application.CalculationState = xlDone了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39201917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档