如何基于等差数列逻辑缩短VBA的If条件判断代码?
优化等差数列判断的VBA代码
原代码通过逐一罗列数列项的方式进行判断,当数列延伸出更多项时,代码会变得冗余且不易维护。针对首项为4、公差为3的等差数列,我们可以利用数学规律大幅简化判断逻辑。
核心逻辑
目标数列的通项为:4 + 3*(n-1)(n为正整数),转换为判断条件就是:
myNumber减去首项4后,结果是公差3的整数倍myNumber不小于首项4(避免不符合数列范围的数误判,比如1:(1-4)Mod3=0,但不属于目标数列)
优化后的代码
Dim myNumber As Long If (myNumber - 4) Mod 3 = 0 And myNumber >= 4 Then MsgBox "Hello" End If
补充说明
如果你的场景中myNumber只会取数列范围内的正整数(不会出现小于4的情况),也可以省略myNumber >= 4的判断,进一步简化代码:
Dim myNumber As Long If (myNumber - 4) Mod 3 = 0 Then MsgBox "Hello" End If
内容的提问来源于stack exchange,提问作者Danny Coleiro
相关产品推荐
相关产品推荐

