VBA中 set 和 dim 的区别

dim是定义变量名(包括对象变量),
set是给对象变量赋值

因此从功能上来看,这两个是完全不同的命令,因此谈不上有什么区别的问题。
它们是可以在一起使用的,比如:
dim obj ‘定义变量obj
set obj=createobject("........") '给obj赋值为对象

再如下列例子:
代码1:
1 Sub aa()
2 Dim rg As Range
3 Set rg = Range("A1")
4 With rg
5 End With
6 End Sub

代码2:
1 Sub bb()
2 rg = Range("A1")
3 With rg
4 End With
5 End Sub
两段代码,一段带set,一段不带set,区别在于:

set是将a1单元格这个对象赋值给了对象变量rg
第二段是将a1单元格的值赋值给了variant变量rg

第一段里可以在with语句中用.value获取a1单元格的值,设置单元格格式,等等可以对单元格进行的操作。
而第二段的with语句啥都不能干。
原文地址:https://www.cnblogs.com/gongyanxu/p/8491520.html