我试图在excel定义的场景上运行VBA循环("What-if-analysis"),我有2个问题:
- 是否可以在"场景管理器"中更改场景的顺序?本身。我找不到办法。
- 是否可以只在场景的子集上运行for循环?目前我在循环中使用以下代码:对于每一个sc In Sheets("Casimir_power")。它运行在所有现有的场景。
-
该顺序基于场景创建的时间。所以你可以,但是你必须删除之前的记录。如果你真的有动力的话,你可以写一个宏来做这件事。
-
最好的选择是继续循环遍历所有场景,但创建一个条件来决定是否执行您的过程。检查场景的
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
结束子