关于EXCEL中vba的SET什么意思啊?谢谢

2段代码:Subaa()DimrgAsRangeSetrg=Range("A1")WithrgEndWithEndSubSubbb()rg=Range("A1")With... 2段代码:
Sub aa()
Dim rg As Range
Set rg = Range("A1")
With rg

End With
End Sub
Sub bb()
rg = Range("A1")
With rg

End With
End Sub

一个有SET 一个没有,他们有什么区别啊?谢谢
展开
 我来答
EXCEL办公实战
2015-05-16 · Excel办公实战函数、技巧、VBA教程
EXCEL办公实战
采纳数:2380 获赞数:23625

向TA提问 私信TA
展开全部
VBA中SET是定义一个有属性和方法的对象

Excel版本参考:2010
1、语法

Set objectvar = {[New]
objectexpression | Nothing}

Set 语句的语法包含下面部分:

描述

objectvar
必需的。变量或属性的名称,遵循标准变量命名约定。

New
可选的。通常在声明时使用 New,以便可以隐式创建对象。如果 New 与
Set 一起使用,则将创建该类的一个新实例。如果
objectvar 包含了一个对象引用,则在赋新值时释放该引用。不能使用 New 关键字来创建任何内部数据类型的新实例,也不能创建从属对象。

objectexpression
必需的。由对象名,所声明的相同对象类型的其它变量,或者返回相同对象类型的函数或方法所组成的表达式

Nothing
可选的。断绝 objectvar 与任何指定对象的关联。若没有其它变量指向
objectvar 原来所引用的对象,将其赋为 Nothing 会释放该对象所关联的所有系统及内存资源。
2、说明:

为确保合法,objectvar 必须是与所赋对象相一致的对象类型。

Dim、Private、Public、ReDim以及 Static 语句都只声明了引用对象的变量。在用
Set 语句将变量赋为特定对象之前,该变量并没有引用任何实际的对象。

下面的示例说明了如何使用 Dim 来声明 Form1 类型的数组。Form1 实际上还没有实例。然后使用
Set 将新创建的 Form1 的实例的引用赋给 myChildForms 变量。在 MDI
应用程序中可以使用这些代码来创建子窗体。
Dim myChildForms(1 to 4) As Form1
Set myChildForms(1) = New Form1
Set myChildForms(2) = New Form1
Set myChildForms(3) = New Form1
Set myChildForms(4) = New Form1

通常,当使用 Set 将一个对象引用赋给变量时,并不是为该变量创建该对象的一份副本,而是创建该对象的一个引用。可以有多个对象变量引用同一个对象。因为这些变量只是该对象的引用,而不是对象的副本,因此对该对象的任何改动都会反应到所有引用该对象的变量。不过,如果在
Set 语句中使用 New 关键字,那么实际上就会新建一个该对象的实例。
3、Set 语句示例

该示例使用 Set 语句将对象引用赋给变量。假定 YourObject 指向一个具有 Text
属性的合法对象。
Dim YourObject, MyObject, MyStr
Set MyObject = YourObject '对象引用赋值。
'MyObject 和 YourObject 引用同一个对象。
YourObject.Text = "Hello World" '初始化属性。
MyStr = MyObject.Text '返回 "Hello World"。
'脱离关联。MyObject 不再引用 YourObject。
Set MyObject = Nothing '释放该对象。
TableDI
2024-07-18 广告
Excel一键自动匹配,在线免费vlookup工具,3步完成!Excel在线免费vlookup工具,点击90步自动完成vlookup匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
Zipall
2012-02-26 · TA获得超过1.3万个赞
知道大有可为答主
回答量:8104
采纳率:42%
帮助的人:8490万
展开全部
set是将a1单元格这个对象赋值给了对象变量rg
第二段是将a1单元格的值赋值给了variant变量rg

第一段里可以在with语句中用.value获取a1单元格的值,设置单元格格式,等等可以对单元格进行的操作.

而第二段的with语句啥都不能干.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式