gpt4 book ai didi

vba - 哪种方式更快? if elseif 或 select case

转载 作者:行者123 更新时间:2023-12-01 21:19:29 30 4
gpt4 key购买 nike

对于以下代码,

If Sheets("sheet1").Range("A1").Value = "option_1" Then
Sheets("sheet1").Range("A1").Value = "option_2"
ElseIf Sheets("sheet1").Range("A1").Value = "option_2" Then
Sheets("sheet1").Range("A1").Value = "option_3"
ElseIf Sheets("sheet1").Range("A1").Value = "option_3" Then
Sheets("sheet1").Range("A1").Value = "option_4"
...
End IF

Select Case Sheets("sheet1").Range("A1").Value
Case Is = "option_1"
Sheets("sheet1").Range("A1").Value = "option_2"
Case Is = "option_2"
Sheets("sheet1").Range("A1").Value = "option_3"
Case Is = "option_3"
Sheets("sheet1").Range("A1").Value = "option_4"
...
End Select

问题:

1)我想知道哪种方式会更快。如果可能的话,可以解释一下技术细节吗?

2)无论效率如何,在这种情况下我应该使用哪种方法,以获得更好的编码。

3)还有其他“简单”的方法来循环数组中的值吗?

最佳答案

  1. Case 语句应该最大限度地减少处理器尝试更改其命令位置的次数。这样做会导致它浪费时钟周期,直到引用正确的命令为止。除非您正在编写需要极度优化的内容,否则您不会注意到其中的差异。
  2. 我倾向于案例陈述,因为它们更容易阅读。 (更少阅读 => 更容易阅读)
  3. 如果这是您正在使用的确切数据,您可以拆分“_”上的值,并将最后一位数字“mod”增加到可能的最高值。将字符串重新组合在一起即可得到结果。

关于vba - 哪种方式更快? if elseif 或 select case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11640413/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com