EXCELVBA帮助手册Word文档格式.docx
《EXCELVBA帮助手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《EXCELVBA帮助手册Word文档格式.docx(49页珍藏版)》请在冰豆网上搜索。
![EXCELVBA帮助手册Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/4/03f4210e-515a-47ce-b958-175fdfdc5ed6/03f4210e-515a-47ce-b958-175fdfdc5ed61.gif)
任意类型的表达式,指定要添加到集合中的成员。
key
可选的。
唯一字符串表达式,指定可以使用的键字符串,代替位置索引来访问集合中的成员。
before
表达式,指定集合中的相对位置。
在集合中将添加的成员放置在before参数识别的成员之前。
如果为一数值表达式,则before必须是介于1和集合Count属性值之间的值。
如果为一字符串表达式,则当添加一个被引用的成员到集合时,before必须对应于指定的key值。
可以指定before位置或after位置,但不能同时指定这两个位置。
after
可选。
在集合中将添加的成员放置在After参数识别的成员之后。
如果为一数值表达式,则after必须是介于1和集合Count属性值之间的值;
如果为一字符串表达式,则当添加一个被引用的成员到集合时,after必须对应于指定的key值。
说明
before或after参数是字符串表达式或数值表达式,均须引用集合中现有成员,否则将导致错误发生。
如果指定的key和集合中现有成员的key发生重复,则也会导致错误发生。
1、应用于Collection对象
2、请参阅Item方法、Remove方法
Add方法示例
本示例使用Add方法将Inst对象(类Class1之示例,其中包含Public变量InstanceName)加到MyClasses集合对象中。
若要观察程序的运作,插入一个类模块,并在Class1的模块级中声明公用变量InstanceName(键入PublicInstanceName)来保存每个示例的名称。
类名就用缺省的Class1。
将下列代码复制与粘贴到某个窗体模块的Form_Load事件过程中。
DimMyClassesAsNewCollection'
建立集合对象。
DimNumAsInteger'
定义计数变量。
DimMsg
DimTheName'
用来保存用户指定的名称的变量。
Do
DimInstAsNewClass1'
建立Class1的新示例。
Num=Num+1'
将计数变量加一,并让用户输入名称。
Msg="
Pleaseenteranameforthisobject."
&
Chr(13)_
"
PressCanceltoseenamesincollection."
TheName=InputBox(Msg,"
NametheCollectionItems"
)
Inst.InstanceName=TheName'
将输入的名称存到对象的示例中。
'
如果名称不是空字符串,则将该示例加到集合对象中。
IfInst.InstanceName<
>
"
Then
将该示例加到集合对象中。
MyClasses.Additem:
=Inst,key:
=CStr(Num)
EndIf
清除对当前示例的引用,以准备下一个。
SetInst=Nothing
LoopUntilTheName="
ForEachxInMyClasses
MsgBoxx.instancename,,"
InstanceName"
Next
Add方法(Dictionary)
添加一对相对应的关键字和条目到Dictionary对象。
object.Addkey,item
Add方法的语法有如下几部分:
Object
一个Dictionary对象的名字。
Key
与所添加的条目相关联的关键字。
Item
与所添加的关键字相关联的条目。
如果该关键字已经存在,则产生一个错误。
1、应用于Dictionary对象
2、请参阅ADD方法(Folder)、Exist方法、Items方法、Keys方法、Remove方法、RemoveAll方法
Add方法(Folders)
添加一个新的Folder到Folders集合。
object.AddfolderName
一个Folders集合的名称。
FolderName
新添加的Folder的名称。
如果folderName已经存在,则产生一个错误。
1、应用于Folders集合
2、请参阅Add方法(Dictionary)
Assert方法
有条件地在该方法出现的行上挂起执行。
object.Assertbooleanexpression
Assert方法的语法有如下的对象限定符和参数:
总是Debug对象。
booleanexpression
一个值为True或者False的表达式。
Assert调用只在开发环境中工作。
当模块被编译成为一个可执行的文件时,调用Debug对象的方法就会被忽略。
全部booleanexpression常常被计算。
例如,即使一个And表达式的第一部分被计算为False,整个表达式还要被计算。
1、应用于Debug对象
2、请参阅Print方法
Assert方法示例
下面的示例说明如何使用Assert方法。
示例需要一个带有两个按纽控件的窗体。
缺省的按纽名称是Command1和Command2。
当示例运行时,单击Command1按纽使得按纽上的文本在0和1之间进行切换。
单击Command2按纽可能不做任何事,也可能引起一个确认,应该执行哪一个操作取决于Command1按纽上所显示的值。
该确认将在最后一个语句执行之后使整个执行停止,并且Debug.Assert行被突出显式。
OptionExplicit
PrivateblnAssertAsBoolean
PrivateintNumberAsInteger
PrivateSubCommand1_Click()
blnAssert=NotblnAssert
intNumber=IIf(intNumber<
0,0,1)
Command1.Caption=intNumber
EndSub
PrivateSubCommand2_Click()
Debug.AssertblnAssert
PrivateSubForm_Load()
Command2.Caption="
AssertTester"
BuildPath方法
追加一个名字到一个已经存在的路径。
object.BuildPath(path,name)
BuildPath方法语法有如下几部分:
始终是FileSystemObject的名字。
path
要对其追加名字的已存在路径。
路径可以是绝对的也可以是相对的,不必指定一个已存在的文件夹。
name
要追加到已存在路径上的名字。
只有在需要时,BuildPath方法才在已存在路径和名字之间插入一个附加的路径分隔符。
1、应用于FileSystemObject对象。
Clear方法
清除Err对象的所有属性设置。
object.Clear
objec总是Err对象。
在处理错误之后使用Clear来清除Err对象,例如,在对OnErrorResumeNext使用拖延错误处理时就可使用Clear。
每当执行下列语句时就会自动调用Clear方法:
∙任意类型的Resume语句。
∙ExitSub,ExitFunction,ExitProperty
∙任何OnError语句。
注意当处理因访问其他对象产生的错误时,与其使用OnErrorGoTo,不如使用OnErrorResumeNext。
每一次与对象打交道之后都检查Err,则可消除代码访问对象时的含混之处。
可以确认是哪个对象将错误引入Err.Number中,也可以确认最初是哪个对象产生了这个错误(Err.Source中指定的对象)。
1、应用于Err对象
2、请参阅Description属性、Err对象、HelpContext属性、HelpFile属性、LastDLLError属性、Number属性、OnError语句、Raise方法、Source属性。
Clear方法示例
本示例使用Err对象的Clear方法将Err对象之数值属性重新设置为零,并将其字符串属性设置为零长度字符串。
如果在代码中省略Clear方法,则每完成一次循环便会显示一次错误信息(发生错误之后),不论程序中的计算结果是否真的有错误。
DimResult(10)AsInteger'
声明数组变量
其元素容易溢出
Dimindx
OnErrorResumeNext'
将错误处理的方式改为“继续下一行”。
DoUntilindx=10
下面计算若有错误发生,便显示错误信息。
Result(indx)=Rnd*indx*20000
IfErr.Number<
0Then
MsgBoxErr,,"
ErrorGenerated:
Err.HelpFile,Err.HelpContext
Err.Clear'
清除Err对象的属性。
Else
indx=indx+1
Loop
Close方法
关闭一个打开的TextStream文件。
object.Close
object始终是一个TextStream对象的名字。
1、应用于TextStream对象
2、请参阅Read方法、ReadAll方法、ReadLine方法、Skip方法、SkipLine方法、Write方法、WriteBlankLines方法、WriteLine方法。
Copy方法
把一个指定的文件或文件夹从一个地方复制到另一个地方。
object.Copydestination[,overwrite]
Copy方法语法有如下几部分:
始终是一个File或Folder对象的名字。
destination
文件或文件夹要复制到的接受端。
不允许有通配符。
overwrite
Boolean值,如果该值为True(缺省),则已存在的文件或文件夹将被覆盖。
如果为False,则它们不被覆盖。
对一个File或Folder,Copy方法的结果和执行FileSystemObject.CopyFile或FileSystemObject.CopyFolder操作的结果是一样的,在后者中,object所引用的文件或文件夹是作为参数传递的。
应当注意,后面的方法能够复制多个文件或文件夹。
1、应用于File对象、Folder对象
2、请参阅CopyFile方法、CopyFolder方法、Delete方法、Move方法、OpenAsTextStream方法
CopyFile方法
把一个或多个文件从一个地方复制到另一个地方。
object.CopyFilesource,destination[,overwrite]
CopyFile方法语法有如下几部分:
object始终是一个FileSystemObject的名字。
source
指明一个或多个要被复制文件的字符串文件说明,它可以包括通配符。
指明source中的一个或多个文件要被复制到的接受端的字符串,不允许有通配符。
选项的。
Boolean值,它表示存在的文件是否被覆盖。
如果是True,文件将被覆盖;
如果是False,它们不被覆盖。
缺省值是True。
注意如果destination具有只读属性设置,不论overwrite值如何,CopyFile都将失败。
通配符只能用在source参数的最后一个路径部件。
例如,你可以在下面请况使用通配符:
FileSystemObject.CopyFile"
c:
\mydocuments\letters\*.doc"
"
\tempfolder\"
但下面情况不能使用:
\mydocuments\*\R1?
?
97.xls"
\tempfolder"
如果source包含通配符或destination以路径分隔符(\)为结尾,则认为destination是一个已存在文件夹,在其中复制相匹配的文件。
否则认为destination是一个要创建文件的名字。
不论是那种情况,当复制一个文件时,可能发生三种事件。
∙如果destination不存在,source得到复制。
这是通常的情况。
∙如果destination是一个已存在的文件,则当overwrite值为False时发生一个错误,否则,source的复制文件将试图覆盖已存在文件。
∙如果destination是一个目录,发生一个错误。
如果使用通配符的source不能和任何文件匹配,同样产生一个错误。
CopyFile方法停止在它遇到的第一个错误上。
不要试图回卷或撤消错误发生前所做的任何改变。
1、应用于FileSystemObject对象
2、请参阅Copy方法、CopyFolder方法、CreateFolder方法、DeleteFolder方法、MoveFolder方法
CopyFolder方法
从一个地方递归地复制一个文件夹到另一个地方。
object.CopyFoldersource,destination[,overwrite]
CopyFolder方法语法有如下几部分:
始终为一个FileSystemObject的名字。
指明一个或多个被复制文件夹的字符串文件夹说明,可以包括通配符。
指明source中被复制文件夹和子文件夹的接受端的字符串,不允许有通配符。
Boolean值,它表示已存在的文件夹是否被覆盖。
如果为True,文件被覆盖。
如果为False,文件不被覆盖。
缺省值为True。
通配符仅可用于source参数的最后一个路径部件。
例如你可以在下面情况使用它:
FileSystemObject.CopyFolder"
\mydocuments\letters\*"
但不能在下面情况使用它:
\mydocuments\*\*"
如果source包含通配符或destination以路径分隔符(\)为结尾,则认为destination是一个已存在的文件夹,在其中复制相匹配的文件夹和子文件夹。
否则认为destination是一个要创建的文件夹的名字。
不论何种情况,当复制一个文件夹时,可能发生四种事件。
∙如果destination不存在,source文件夹和它所有的内容得到复制。
∙如果destination是一个已存在的文件,则发生一个错误。
∙如果destination是一个目录,它将尝试复制文件夹和它所有的内容。
如果一个包含在source的文件已在destination中存在,当overwrite为False时发生一个错误,否则它将尝试覆盖这个文件。
∙如果destination是一个只读目录,当尝试去复制一个已存在的只读文件到此目录并且overwrite为False时,则发生一个错误。
如果source使用的通配符不能和任何文件夹匹配,也发生一个错误。
CopyFolder方法停止在它遇到的第一个错误上。
不要尝试回卷错误发生前所做的任何改变。
2、请参阅Copy方法、CopyFile方法、CreateFolder方法、DeleteFolder方法、MoveFolder方法
CreateFolder方法
创建一个文件夹。
object.CreateFolder(foldername)
CreateFolder方法有如下几部分:
始终是一个FileSystemObject的名字。
foldername
字符串表达式,它标识创建的文件夹。
如果指定的文件夹已经存在,则发生一个错误。
2、请参阅CopyFolder方法、CreateTextFile方法、DeleteFolder方法、MoveFolder方法。
CreateTextFile方法
创建一个指定的文件名并且返回一个用于该文件读写的TextStream对象。
object.CreateTextFile(filename[,overwrite[,unicode]])
CreateTextFile方法有如下几部分:
始终是一个FileSystemObject或Folder对象的名字。
filename
字符串表达式,它标识创建的文件。
Boolean值,表示一个已存在文件是否可被覆盖。
如果可被覆盖其值为True,其值为False时不能覆盖。
如果它被省略,则已存在文件不能覆盖。
unicode
Boolean值,表示文件是作为一个Unicode文件创建的还是作为一个ASCII文件创建的。
如果作为一个Unicode文件创建,其值为True,作为一个ASCII文件创建,其值为False。
如果省略的话,则认为是一个ASCII文件。
下面的代码举例说明如何使用CreateTextFile方法创建和打开文本文件。
SubCreateAfile
Setfs=CreateObject("
Scripting.FileSystemObject"
Seta=fs.CreateTextFile("
\testfile.txt"
True)
a.WriteLine("
Thisisatest."
a.Close
对于一个已经存在的filename,如果overwrite参数是False或者没有提供,则发生一个错误。
1、应用于FileSystemObject对象、Folder对象
2、请参阅CopyFile方法、DeleteFile方法、OpenAsTextStream方法、OpenTextFile方法
Delete方法
删除一个指定的文件或文件夹。
object.Deleteforce
Delete方法语法有如下几部分:
force
Boolean值,如果要删除具有只读属性设置的文件或文件夹,其值为True。
当其值为False时(缺省),不能删除具有只读属性设置的文件或文件夹。
如果指定的文件或文件夹不存在,则发生一个错误。
对于一个File或Folder,Delete方法的结