在vba中使用秒=符号的功能感到困惑。例如。 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
答案 0 :(得分:4)
(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)