作者:乔山办公网日期:
返回目录:excel表格制作
1、在Excel的VBA中,声明变量zd语句为:Dim 变量名 As 变量类型。
2、Set 语句是给对象型变量赋值语句。
3、例如:Dim SH As worksheet 这句是声明了一个变量名为版SH的工权作表型变量。
4、而Set SH = Sheets("设置")这句是把工作表名为"设置"的工作表指定给变量SH。
两个来概念呀,DIM 是VB声明变量的关键字,不管是对象变量源 还是普通变量,都是用DIM 显式声明
set是给对象变量赋值的关键字,普通变量赋值其实前面有个百省略了的度关键字let
比如定义俩个变量,一个range(对象变量) 另一个integer(普通变量)
dim rng as range
dim i as integer
set rng=Sheets(1).Usedrange
i=6
完整的应该是let i=6 但是省略成 i=6
VBA没有直接这样的用法zd和函数,下面内是我写的一个自定容义函数,你参考一下
Option Explicit
Sub test()
Dim a As String, b As String
a = "abc"
b = "cdefg"
MsgBox StrCom(a, b)
End Sub
Function StrCom(ByVal str1 As String, ByVal str2 As String) As Boolean
Dim i As Integer
Dim tmp As String
StrCom = False
For i = 1 To Len(str1)
tmp = Mid(str1, i, 1)
If InStr(1, str2, tmp) > 0 Then
StrCom = True
Exit Function
End If
Next i
End Function
VBA中SET是定义一个有属性和方法的对象
Excel版本参考:2010
1、语法
Set objectvar = {[New]
objectexpression | Nothing}
Set 语句的语法包含下面部分:
描述
objectvar
必需的。变量或属性的名称,遵循标准变量命名约定。
New
可选的。通常在e79fa5e98193e78988e69d83334声明时使用 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 '释放该对象。