VBA 一条语句分多行和多条语句并在同一行

如标题所述,这正好是两个相反的需求。

当我们在 VBE(Visual Basic Editor) 中编码的时候,有时候会碰到特别长的一条语句,一个屏幕显示不下来,要不停的拉滚动条来看完整条语句,特别不方便。这时我们就需要把这样的长语句分成好几行来写。在 VBA 里(VB 也是一样),空格加下划线 ( _) 在语法上表示继续一行代码。我们可以在一个比较自然的地方结束一行,比如逗号后面;然后加上空格和下划线,回车,在下一行继续输入。记住,下划线(_)前面一定要有空格(Space),一个还是两个倒无所谓,因为VBA 会把多余的空格去掉的。同理,下划线后面输入空格也不要紧,VBA 同样会帮你去掉的。

还有一点要注意,在合适的地方结束一行是指插入点前后的内容都能被编译器的词法分析生成 Token。如果在一个很长很长的字符串内部的逗号后面插入空格加下划线 ( _) 再回车,问题就大喽。

下面是 Excel VBA 里特别长的一条语句,我用了好几行输入:

Worksheets("sheet1").Range("A:D").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("sheet1").Range("I1:I3"), _
CopyToRange:=Worksheets("sheet1").Range("J:M"), Unique:=False

就像会碰到特别长的语句一样,有时候我们会碰到特别短的语句。VB 的语法是一句一行,但对于特别短的语句,写成好几行看了也会不舒服,这时我们就可以用冒号(:)把这些语句连起来写在同一行。

比如下面交换两个变量值的一段代码:

Dim a As Long, b As Long, c As Long
If a < b Then
        c = a: a = b: b = c
End If

你可能感兴趣的:(Office,组件)