我想知道这在处理大量数据时将如何影响我的编码,以及我将如何构造我的逻辑参数

两个问题:

1)IF-ELSE和Select CASE之间的主要区别是什么?选择案例是否通过同时评估所有案例来运作?

如果我遇到这样的情况,例如,从结构上讲,它需要同时处理两个或多个案例。

int = 5
Select case int
Case >0
Case 5
Case <0

在需要触发案例“1”和“2”的情况下,我是否在IF ELSE上使用CASE?

2)现在,对于另一种情况,如果我有一个变量将触发一个以上的情况,但是我想将优先级限制为仅一个情况,请说我只希望对情况“1”采取行动,而排除其余情况,我是有权说IF-ELSE在这方面会取胜吗?

编辑-我意识到我的问题措辞很差。我对代码做了一些编辑

最佳答案

在实际回答您的问题之前,先对Select Case进行一些说明:

如您建议的

  • 一样,您可以在VBA的一个Case开关中组合多个值,例如:Case Is>40, 20, 10, 2 To 3,有关更多信息,请参见documentation on MSDN
  • 最多执行一个Case,找到匹配项后退出(例如,在示例中,执行Case >0然后退出,甚至不评估Case 5)
  • 它只会对您的变量/表达式求值一次,并且对所有比较都使用相同的值,而不是嵌套的(如果它求多个时间)
  • 如果要对值执行“both”和“both”,则可以在大小写内嵌套if:
    Case Is > 0
        <Common code>
        If i = 5 Then
            <code only for  case 5>
        End If
    
  • Select Case的优势
  • 当您决定一个变体/表达式的多个值时,效率会更高
  • ,当您的表情例如是耗时函数的结果,在这种情况下,与if
  • 相比,您确实可以节省时间
    If的优势
  • 基本上,在所有未针对Select Case描述的情况下,这都是一个不错的选择,例如:
  • 您只有有两个选项(可以同时选择ifselect,但是if更容易阅读)
  • 您在决策过程中要考虑多个表达式,而无法轻松转换成它们到单个值
  • Select Case类似,您也可以使用elseif准备多个比较,它也会在第一个完全满足的条件下停止,但是在这里,您的表达式每次都会被求值,直到找到匹配项为止,当然您也可以使用更复杂的条件。
  • 10-05 21:12
    查看更多