VBA 语法糖

VBA 语法糖

我每天都在工作中使用 VBA,但我不知道 Range 语法糖。上个月我看 MSDN Range 页面时才知道。我试图找到一篇介绍此功能的文章,但没有找到。

有人知道 VBA 是否有比这更多的语法糖吗

范围:Range("A4:C100")[A4:C100]

或者

范围:Range("MY_DATE")[MY_DATE]

答案1

对于范围

它们都做同样的事情:

Range(Cells(1, 2), Cells(2, 2)).Select

Range("B1:B2").Select

Dim rngB As Range
Set rngB = Range("B1:B2")
rngB.Select

[B1:B2].Select


对于字符串

你没有太多选择

Dim strA As String
strA = "hello"

strA = strA + "world"strA = strA & "world"做同样的事情(最好使用 & 符号)

strA &= "world"并且strA += "world" 不起作用。


对于工作表

您通常可以使用带有编号的实际默认工作表,而不是工作表的名称:

Worksheets("Name").Activate
Sheets("Name").Activate
'Worksheet "Name" is Sheet1 object
Sheet1.Activate

对于工作表公式/函数

来自 Excellll 的回答为了完整性:

另一个语法快捷方式是用于访问和评估工作表函数。您可以使用括号来评估公式,就像它在工作表上一样,而不是将繁琐的 VBA 语句串在一起。

Sub sugartest()
'long version
MsgBox Application.WorksheetFunction.Average(ActiveSheet.Range("A1:D1"))
'short version
MsgBox [AVERAGE(A1:D1)]
End Sub

答案2

另一个语法快捷方式是用于访问和评估工作表函数。您可以使用括号来评估公式,就像它在工作表上一样,而不是将繁琐的 VBA 语句串在一起。

Sub sugartest()
'long version
MsgBox Application.WorksheetFunction.Average(ActiveSheet.Range("A1:D1"))
'short version
MsgBox [AVERAGE(A1:D1)]
End Sub

相关内容