我想知道是否有某种方法可以缩写代码行,例如:
Sub Test()
Dim A, B as Integer
A = 0
If A = 0 Then B = 1 Else B = 2
End Sub
更新
而不是这样做:
Sub Test()
Dim A, B as Integer
A = 0
If A = 0 Then
B = 1
Else
B = 2
End if
End Sub
我可以这样做:
Sub Test()
Dim A, B as Integer
A = 0
If A = 0 Then B = 1 Else B = 2
End Sub
我还有什么其他选择可以做类似的事情,但有For,While,Select等等......
由于
答案 0 :(得分:1)
鉴于VBA中的 True 等于-1,这应该是。
Sub Test()
Dim A as Integer, B as Integer
A = 0
B = 2 + (A = 0)
End Sub
可能有更简洁的方法,但VBA并不以稀疏代码行而闻名。您可以调查Code Golf网站。
答案 1 :(得分:1)
取自答案here和here,您可以使用":"来减少行/组合行的总数,如下所示:
Sub test2()
Dim i As Long, s As Long
For i = 1 To 10: s = s + i: Next i: MsgBox s
End Sub
这就是你追求的目标吗?
答案 2 :(得分:1)
您可以使用:
开始新的代码行,而无需开始新行。
Dim i as integer: For i = 1 to 10 : debug.print i : next i
答案 3 :(得分:0)
Sub Test()
Dim A as Long, B as Long
A = 0
B = 2
If A = 0 Then B = 1
End Sub
这是我做的方式,如果没有别的并且只有一个陈述,你不需要结束。
为什么我会这样做?它非常容易阅读,这意味着其他任何人都可以维护代码。
我确实注意到你没有像任何东西一样昏暗,你必须为每一个都设置类型,而不仅仅是列表中的最后一个。
也不要使用整数,在VBA中使用long。有很多关于原因的文档,你可以更快地谷歌“VBA Long而不是整数”,而不是让我输入全部。