关于EXCEL中vba的SET什么意思啊?谢谢
发布网友
发布时间:2022-04-26 16:18
我来回答
共2个回答
热心网友
时间:2023-10-14 01:26
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 '释放该对象。
热心网友
时间:2023-10-14 01:27
set是将a1单元格这个对象赋值给了对象变量rg
第二段是将a1单元格的值赋值给了variant变量rg
第一段里可以在with语句中用.value获取a1单元格的值,设置单元格格式,等等可以对单元格进行的操作.
而第二段的with语句啥都不能干.
关于EXCEL中vba的SET什么意思啊?谢谢
VBA中SET是定义一个有属性和方法的对象 Excel版本参考:2010 1、语法 Set objectvar = {[New]objectexpression | Nothing} Set 语句的语法包含下面部分:描述 objectvar 必需的。变量或属性的名称,遵循标准变量命名约定。New 可选的。通常在声明时使用 New,以便可以隐式创建对象。如果 New 与 Set ...
Excel vba 你写的这个代码,为什么加上个set?
对应对象变量的赋值使用SET,例如:SET R=RANGE("A1:A2")这里的SET不可以省略,接下来R具有RANGE的方法和属性,例如:MSGBOX R.CELLS.COUNT 特别需要注意,对于RANGE对象可以用LET复制给数组,例如:LET A=RANGE("A1:A2")MSGBOX A(2,1) '显示A2的值 LET仍然可以省略,所以同样的语句,需要注意有...
excel vba中set xxx = yyy和dim xxx as yy,这两个语句有什么区别?
set是给对象变量赋值的关键字,普通变量赋值其实前面有个省略了的关键字let 比如定义俩个变量,一个range(对象变量) 另一个integer(普通变量)dim rng as rangedim i as integerset rng=Sheets(1).Usedrangei=6完整的应该是let i=6 但是省略成 i=6 ...
VBA 中set的作用
set 对象变量=对象 将对象赋给对象变量 如果觉得不好理解,可以通过与最简单的赋值语句类比,如[let]变量=表达式 赋值语句的意思就是把表达式的值赋给变量(let可以省略)同样,“set 对象变量=对象”就表示将对象赋给对象变量~至于Application.Selection,Application代表整个EXCEL应用程序,Selection,顾名思...
EXCEL VBA这些语句是什么意思,有大神逐句翻译吗?
Set d = CreateObject("Scripting.Dictionary") '赋值D为字典对象 arr = Sheet1.UsedRange For i = 2 To UBound(arr)If arr(i, 1) <> "" Then d(arr(i, 1)) = "" 'D增加关键字 Next With Range("B2").Validation .Delete .Add 3, 1, 1, Join(d.keys, ",") 'B2增加数据...
关于Excel VBA翻译
Range()是区域的意思,Range("B41:C45")就是指由左上角为单元格"B41"和右下角为单元格"C45"组成的区域;ClearContents是清除内容。所以本行代码就是,清除区域"B41:C45"里的内容。2,Dim arr1 声明一个变量,其类型为变体类型 3,Set dic1 = CreateObject("scripting.dictionary")Set dic2 = ...
EXCEL VBA应用问题: Set rngStart = Range(sWsConfig & "!" & sDQu...
即可以这样引用具体的单元格位置:工作表名称!单元格 因此,sWsConfig 代表的是某个工作表名称,sDQuery 代表具体的单元格区域 至于这两个变量,应该不是VBA的保留定义,而是用户自己定义的,请在整个工程范围内用查找工具,就能找到具体是在哪个过程模块或者类模块中定义的了。
excel VBA程序问题:以下函数中Set Cella = Rng.Range("A1") 是什么用...
这是一个来判断某个单元格中数据类型的自定义函数。rng为单元格区域,可以为一个单元格,也可以是一块单元格区域,Rng.Range("A1") 是你所选区域的第一个单元格,通过这个自定义函数来判断如果为空,则返回此为blank,如果为文本,即返回text....
请问:excel vba中xlvalue,xlwhole,xlbyrows,xlnext,xlup,xltoleft等XL...
Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End IfEnd WithEnd Sub 或者,将代码作如下修改,即去掉原代码中最后一个判断循环的条件c.Address <> firstAddress,因为本程序的功能是在指定区域查找值为2的单元格并替换为数值5,当程序在指定区域查找不到数值2时就会退出...
关于EXCEL VBA中数组下标越界的问题
Set rng = Sheet2.Range("A2:A"& Sheet2.[A65536].End(xlUp).Row + 1)arr = rng.Value 采用单元格区域直接赋值给数组的时候,并不像数组公式里那样,单行或者单列的单元格区域返回一维的水平或者垂直数组,而是像工作表行列分布一样的二维数组。因此引用数组里的值时,必须使用二维引用的方式,...