第二个 equals = within vba 变量赋值有什么作用?
What does a second equals = within vba variable assignment do?
对使用第二个=登录的功能感到困惑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
(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)
对使用第二个=登录的功能感到困惑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
(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)