在vba中使用second =符号的功能感到困惑。例如。 s = Int(xVal)+(xVal = n + 1)
我一直在解密一些代码,并遇到了以下使我感到困惑的行,尽管进行了广泛的研究和调试,但我似乎仍在努力寻找答案:
s = Int(xVal) + (xVal = n + 1)
和
p(i, 3) = A(i)(s + 3 + (s = n)) + (s = n) * (p(i, 1) - p(i, 2))
我的问题是,第一次赋值=符号后,括号内的比较功能是什么?
TIA
最佳答案
(s = n)
如果s和n都具有相同的值,则其取值为
True
,可以通过其他算术运算将其强制为其基础值-1。例如:
? True * 1 '>> -1
? False * 1 '>> 0
所以这:
s = Int(xVal) + (xVal = n + 1)
就像写:
If xVal = n + 1 Then
s = Int(xVal) + -1
else
s = Int(xVal) + 0
end if
要么:
s = Int(xVal) + IIf(xVal = n + 1, -1, 0)