Excel VBA:如何更改场景顺序



我试图在excel定义的场景上运行VBA循环("What-if-analysis"),我有2个问题:

  1. 是否可以在"场景管理器"中更改场景的顺序?本身。我找不到办法。
  2. 是否可以只在场景的子集上运行for循环?目前我在循环中使用以下代码:对于每一个sc In Sheets("Casimir_power")。它运行在所有现有的场景。
  1. 该顺序基于场景创建的时间。所以你可以,但是你必须删除之前的记录。如果你真的有动力的话,你可以写一个宏来做这件事。

  2. 最好的选择是继续循环遍历所有场景,但创建一个条件来决定是否执行您的过程。检查场景的name是否与您想要的匹配可能是最简单的。请参阅下面的示例,如果Scenario匹配两个名称中的一个,该示例将运行代码。您还可以基于场景的范围,或者场景对象中的任何其他内容。

    子eachScenario ()作为场景,作为工作表Set ws = Sheets("Casimir_power")

    For Each s In ws.Scenarios
    Debug.Print s.Name
    If s.Name = "?????" Or s.Name = "!!!!!" Then
    s.Show 'or whatever
    Else
    'skip
    End If
    Next s
    

    结束子