vba中 := 和 = 有什么区别吗?

来源:百度知道 编辑:UC知道 时间:2024/05/29 15:47:10

两者都是赋值符,但赋值的对象不同而已。
1. := 是“方法”的内部子参数赋值时使用的。

比如说Find(查找)方法,其语法如下:

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

当我们想在Sheet1中查找“工时”两个字时,可以这样写:
1.Sheet1.Find(What:="工时", LookIn:=xlValues, LookAt:=xlWhole)

这里,Find就是“方法”,相当于主要过程,而括号内的What、After、LookIn、LookAt、MatchCase之类的,就是这个方法的子(内部)参数,当给这些内部参数赋值时,就要用到:=。
当然,上面的语句,如果你按参数的顺序写,然后不赋值的参数用逗号预留占位的话,这些子参数的名称也是可以省略的,也就可以省略:=这个赋值符。

2. =是给变量、对象赋值时使用的。

如 i = 55、Range("A1").Value="Good Morning"、Set Rng = Range("A1")、Set dic = CreateObject("Scripting.Dictionary") 等等。

:= 可以用于对方法参数的赋值
比如你定义了一个方法m(elem1 as ..., elem2 as ...)
在调用这个方法的时候
m elem11,elem21
可以写成
m elem1:=elem11,elem2:=elem21
这样说好像看不出来区别
这样比较看看
m2(elem1 as ...,elem2 as ...,elem3 as ...,elem4 as ...,elem5 as ...,elem6 as ...,elem7 as ...)
调用时