Excel VBA 中的 := 和 = 有什么区别

What is the difference between := and = in Excel VBA

我使用 Excel 已经有一段时间了,但我从来没有读过这两个运算符之间有什么区别 ("regardless of i have used both") :== 在 Excel VBA

如您所知,= 用于分配值或设置对象 - 例如i=1

:= 另一方面(就像 Comintern 提到的那样),用于为某个 named 参数赋值,afaik 只在方法内部或功能。

考虑以下示例:您可以使用类似 MsgBox "Hello World", , "Title1" 的内容 - 按默认顺序指定 MsgBox 的参数 - prompt,默认 Buttons-样式,然后是 Title.

或者,可以使用 := 来写 MsgBox Title:="Title1", prompt:="Hello world"

注意

  • 参数的顺序在这里并不重要并且

  • 无需为默认参数指定空占位符 , ,

让我们以Range.Find method

为例

expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

要设置的条件很多!但是您只想在 Range("A1:A500"):

中简单搜索数字 2

如果没有 := 运算符,您将不得不使用逗号来访问要设置的任何可选变量:

Range("A1:A500").Find(2, , xlValue, , , , , , )

使用 := 运算符,您可以指定您想要的条件,而无需通过所有默认设置进行描述:

Range("A1:A500").Find(what:=2, lookin:=xlValues)