Set 语句

将对象引用分配给变量属性

语法

Setobjectvar= {[ New ] objectexpression | Nothing }

Set 语句语法包含以下部分:

Part 说明
objectvar 必填。 变量或属性的名称;遵循标准变量命名约定。
New 可选。 在声明以启用隐式对象创建的过程中,经常使用 New。 在将 NewSet 结合使用时,它将创建的新实例。 如果 objectvar 包含对某个对象的引用,则该引用将在分配新的引用时发布。 New关键字 (keyword) 不能用于创建任何内部数据类型的新实例,也不能用于创建依赖对象。
objectexpression 必填。 表达式包含对象的名称、同一对象类型的另一个声明变量或返回相同对象类型的对象的函数或方法
Nothing 可选。 中断 objectvar 与任何特定对象的关联。 当没有其他变量引用对象时,向 objectvar 分配 Nothing 将释放与以前引用的对象关联的所有系统和内存资源。

备注

objectvar 必须是与它将获得的对象一致的对象类型才有效。

DimPrivatePublicReDimStatic 语句仅声明引用了对象的变量。 在您使用 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 关键字时,您实际上将创建对象的实例。

示例

此示例使用 Set 语句将对象引用分配给变量。 假定 YourObject 是带 Text 属性的一个有效对象。

Dim YourObject, MyObject, MyStr 
Set MyObject = YourObject    ' Assign object reference. 
' MyObject and YourObject refer to the same object. 
YourObject.Text = "Hello World"    ' Initialize property. 
MyStr = MyObject.Text    ' Returns "Hello World". 
 
' Discontinue association. MyObject no longer refers to YourObject. 
Set MyObject = Nothing    ' Release the object. 

另请参阅

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。