vul*_*ven 4 vb6 excel vba programming-languages excel-vba
与C/CPP/CSharp/JScript一样,我们如何在VBA中进行链式赋值?换句话说,VBA是否具有赋值运算符的右关联性?
例如在C-sharp和JavaScript中,我们可以使用:
var alpha, bravo, charlie;
alpha = bravo = charlie = "hello";
Run Code Online (Sandbox Code Playgroud)
现在在VBA中编写此表达式必须:
Dim alpha, bravo, charlie
alpha = "hello"
bravo = "hello"
charlie = "hello"
Run Code Online (Sandbox Code Playgroud)
但我们不能使用:
Dim alpha, bravo, charlie
alpha = bravo = charlie = "hello"
Run Code Online (Sandbox Code Playgroud)
VBA不允许折叠表达式.还有其他办法吗?
不,VBA与赋值运算符没有正确的关联性.但是,VBA确实具有其他逻辑运算符的右关联性或链接操作.请考虑以下表达式:
alpha = 3
bravo = 5
charlie = 4
alpha = bravo < charlie
MsgBox(alpha) 'would display false
alpha = 3
bravo = 5
charlie = 4
alpha = bravo > charlie < alpha
MsgBox(alpha) 'would display ture .. because (bravo > charlie) is true
'and true (or 1) less than alpha
Run Code Online (Sandbox Code Playgroud)
但是,VBA解释器优先于赋值运算符的比较运算符,两者都表示为=
.以机智,
alpha = bravo = "hello"
MsgBox(alpha) 'would display false, because bravo <> "hello"
Run Code Online (Sandbox Code Playgroud)
因此,您需要明确使用多个语句进行分配.
归档时间: |
|
查看次数: |
3518 次 |
最近记录: |