![VBA 语法糖](https://linux22.com/image/1395601/VBA%20%E8%AF%AD%E6%B3%95%E7%B3%96.png)
我每天都在工作中使用 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