EXCEL Workbook对象应用大全Word格式文档下载.docx
《EXCEL Workbook对象应用大全Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EXCEL Workbook对象应用大全Word格式文档下载.docx(60页珍藏版)》请在冰豆网上搜索。
ws.Cells(1,3)="
产品数量"
Fori=2To10
ws.Cells(i,1)=i-1
Nexti
应用示例3:
创建带有指定数量工作表的工作簿
SubtestNewWorkbook()
创建一个带有10个工作表的新工作簿"
Setwb=NewWorkbook(10)
FunctionNewWorkbook(wsCountAsInteger)AsWorkbook
'
创建带有由变量wsCount提定数量工作表的工作簿,工作表数在1至255之间
DimOriginalWorksheetCountAsLong
SetNewWorkbook=Nothing
IfwsCount<
1OrwsCount>
255ThenExitFunction
OriginalWorksheetCount=Application.SheetsInNewWorkbook
Application.SheetsInNewWorkbook=wsCount
SetNewWorkbook=Workbooks.Add
Application.SheetsInNewWorkbook=OriginalWorksheetCount
EndFunction
自定义函数NewWorkbook可以创建最多带有255个工作表的工作簿。
本测试示例创建一个带有10个工作表的新工作簿。
[应用2]打开工作簿(Open方法)
Open方法用于打开一个现有的工作簿,其语法为:
Workbooks.Open(FileName,UpdateLinks,ReadOnly,Format,Password,WriteResPassword,IgnoreReadOnlyRecommended,Origin,Delimiter,Editable,Notify,Converter,AddToMru,Local,CorruptLoad)
可以看到,该方法具有很多参数,但大多数参数都很少用到。
在这些参数中,除参数FileName必须外,其它参数都可选。
参数FileName指定要打开的工作簿文件的名称,参数UpdateLinks指定更新工作簿中链接的方式,参数ReadOnly用来设置是否以只读方式打开工作簿。
如果需要使用密码来打开工作簿,则应该将参数Password设置为该密码;
如果需要使用密码打开工作簿但没有指定密码,则会弹出询问密码的对话框。
参数AddToMru指定是否将工作簿添加到最近使用的文件列表中,建议将其设置为True,默认值为False。
应用示例4:
以只读方式打开某工作簿
SubopenWorkbook2()
DimfnameAsString
将D盘中的<
测试.xls>
工作簿以只读方式打开"
fname="
D:
\测试.xls"
Workbooks.OpenFilename:
=fname,ReadOnly:
=True
[应用3]访问特定的工作簿
使用Item属性返回Workbooks集合中特定的工作簿。
例如:
Workbooks.Item
(1)
返回Workbooks集合中的第一个工作簿。
由于Item属性是缺省的属性,因此上述代码也可以简写为:
Workbooks
(1)
然而,使用索引号来指定工作簿是不可靠的,最好使用工作簿的具体名称来指定特定的工作簿,例如:
Workbooks("
MyBook.xlsx"
)
注意,当用户使用“新建”命令创建一个新工作簿(假设该工作簿系统默认名称为Book2)时,在没有保存该工作簿前,应该使用下面的代码指定该工作簿:
Book2"
此时,如果使用下面的代码指定该工作簿:
Book2.xlsx"
将会产生运行时错误:
下标越界。
[应用4]激活工作簿(Activate方法)
使用Activate方法激活指定的工作簿,例如:
MyWorkbook"
).Activate
[应用5]获得当前打开的工作簿数(Count属性)
使用Workbooks集合对象的Count属性来获得当前打开的工作簿数,例如:
Workbooks.Count
[应用6]判断工作簿是否是只读的(ReadOnly属性)
如果工作簿以只读方式打开,那么ReadOnly属性的值为True。
[应用7]获得工作簿的路径和名称(Name属性、FullName属性、Path属性、CodeName属性)
使用Workbook对象的Name属性可以返回工作簿的名称。
例如,下面的函数可以返回当前工作簿的名称:
FunctionMyName()AsString
MyName=ThisWorkbook.Name
使用Workbook对象的FullName属性可以返回工作簿的路径和名称。
例如,下面的函数可以返回当前工作簿的路径和名称:
使用Workbook对象的Path属性可以返回工作簿文件的路径。
使用Workbook对象的CodeName属性返回工作簿对象的代码名。
上述属性均为只读属性。
应用示例5:
一些工作簿通用属性示例
SubtestGeneralWorkbookInfo()
本工作簿的名称为"
&
ActiveWorkbook.Name
本工作簿带完整路径的名称为"
ActiveWorkbook.FullName
本工作簿对象的代码名为"
ActiveWorkbook.CodeName
本工作簿的路径为"
ActiveWorkbook.Path
IfActiveWorkbook.ReadOnlyThen
本工作簿已经是以只读方式打开"
Else
本工作簿可读写."
EndIf
IfActiveWorkbook.SavedThen
本工作簿已保存."
本工作簿需要保存."
[应用8]保存工作簿(Save方法)
使用Save方法保存对工作簿所作的所有更改,其语法为:
Workbook.Save
应用示例6:
保存已存在的所有工作簿
SubSaveAllWorkbooks()
DimwbkAsWorkbook
ForEachwbkInWorkbooks
Ifwbk.Path<
>
"
Thenwbk.Save
Nextwbk
如果某工作簿的Path属性值为空,则表明该工作簿为新建工作簿,还没有保存。
而本过程仅保存所有已存在的(即已经保存过的)工作簿。
[应用9]保存工作簿(SaveAs方法)
使用SaveAs方法在指定的文件中保存对工作簿所做的更改,其语法为:
Workbook.SaveAs(FileName,FileFormat,Password,WriteResPassword,ReadOnlyRecommended,CreateBackup,AccessMode,ConflictResolution,AddToMru,TextCodepage,TextVisualLayout,Local)
所有参数均为可选参数。
其中参数FileName指定要保存文件的文件名,可以包含完整的路径,如果不指定路径,Excel将文件保存到当前文件夹中。
参数FileFormat指定保存文件时使用的文件格式。
如果文件夹中存在相同名称的工作簿,则提示是否替换原工作簿。
参数Password用于指定文件的保护密码,是一个区分大小写的字符串(最长不超过15个字符)。
参数WriteResPassword指定文件的写保护密码,如果文件保存时带有密码,但打开文件时没有输入密码,则该文件以只读方式打开。
将参数ReadOnlyRecommended设置为True,则在打开文件时显示一条消息,提示该文件以只读方式打开。
将参数CreateBackup设置为True,以创建一个备份文件。
参数AccessMode和参数ConflictResolution用来解决访问和冲突问题。
将参数AddToMru设置为True,以添加工作簿到最近使用的文件列表中。
默认值为False。
应用示例7:
创建新工作簿并保存
SubAddSaveAsNewWorkbook()
DimWkAsWorkbook
SetWk=Workbooks.Add
Application.DisplayAlerts=False
Wk.SaveAsFilename:
="
\SalesData.xlsx"
这里使用了Add方法和SaveAs方法,添加一个新工作簿并将该工作簿以文件名SalesData.xlsx保存在D盘中。
其中,语句Application.DisplayAlerts=False表示禁止弹出警告对话框。
应用示例8:
另存已有的工作簿
SubSaveWorkbook2()
DimoldNameAsString,newNameAsString
DimfolderNameAsString,fnameAsString
oldName=ActiveWorkbook.Name
newName="
new"
oldName
将<
oldName&
以<
newName&
的名称保存"
folderName=Application.DefaultFilePath
fname=folderName&
\"
newName
ActiveWorkbook.SaveAsfname
上述代码将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。
应用示例9:
备份工作簿
SubCreateBak1()
保存工作簿并建立备份工作簿"
ActiveWorkbook.SaveAsCreateBackup:
上述代码在当前文件夹中建立工作簿的备份。
SubCreateBak2()
保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False."
MsgBoxActiveWorkbook.CreateBackup
[应用10]保存工作簿副本(SaveCopyAs方法)
使用SaveCopyAs方法保存指定工作簿的一份副本,但不会修改已经打开的工作簿,其语法为:
Workbook.SaveCopyAs(Filename)
参数Filename用来指定副本的文件名。
应用示例10:
使用与活动工作簿相同的名称但后缀名为.bak来备份工作簿
SubSaveWorkbookBackup()
DimawbAsWorkbook,BackupFileNameAsString,iAsInteger,OKAsBoolean
IfTypeName(ActiveWorkbook)="
Nothing"
ThenExitSub
Setawb=ActiveWorkbook
Ifawb.Path="
Then
Application.Dialogs(xlDialogSaveAs).Show
BackupFileName=awb.FullName
i=0
WhileInStr(i+1,BackupFileName,"
."
)>
0
i=InStr(i+1,BackupFileName,"
Wend
Ifi>
0ThenBackupFileName=Left(BackupFileName,i-1)
BackupFileName=BackupFileName&
.bak"
OK=False
OnErrorGoToNotAbleToSave
Withawb
Application.StatusBar="
正在保存工作簿..."
.Save
正在备份工作簿..."
.SaveCopyAsBackupFileName
OK=True
EndWith
NotAbleToSave:
Setawb=Nothing
Application.StatusBar=False
IfNotOKThen
备份工作簿未保存!
vbExclamation,ThisWorkbook.Name
在当前工作簿中运行本示例代码后,将以与工作簿相同的名称但后缀名为.bak备份工作簿,且该备份与当前工作簿在同一文件夹中。
应用示例11:
保存当前工作簿的副本到其它位置来备份工作簿
SubSaveWorkbookBackupToFloppyD()
BackupFileName=awb.Name
IfDir("
BackupFileName)<
Kill"
BackupFileName
.SaveCopyAs"
上述程序将当前工作簿进行复制并以与当前工作簿相同的名称保存在D盘中。
其中,使用了Kill方法来删除已存在的工作簿。
[应用11]判断工作簿是否发生变化(Saved属性)
如果工作簿自上次保存以来没有发生任何变化,那么该工作簿的Saved属性值为True。
由于该属性值是可读写的,因此我们能将该属性的值设置为True,即使该工作簿自上次保存之后发生过变化。
这样,我们能设置该属性的值为True,关闭被修改过的工作簿而不提示保存当前已发生的变化,即让Excel误认为已经保存了所作的变化。
[应用12]关闭工作簿(Close方法)
使用Workbooks对象的Close方法关闭所有工作簿,其语法为:
Workbooks.Close
使用Workbook对象的Close方法关闭指定的工作簿,其语法为:
Workbook.Close(SaveChanges,Filename,RouteWorkbook)
参数均为可选参数。
其中,参数SaveChanges用于在关闭工作簿前保存工作簿所发生的变化。
特别地,如果工作簿中没有变化,则忽略该参数;
如果工作簿中有变化但工作簿显示在其他打开的窗口中,则忽略该参数;
如果工作簿中有改动且工作簿未显示在任何其他打开的窗口中,则由该参数指定是否应保存更改。
如果将该参数设置为True,则保存对工作簿所做的更改;
如果工作簿尚未命名,则使用参数FileName指定的名称保存。
如果忽略参数Filename,则要求用户提供文件名。
如果将该参数设置为False,则不会保存工作簿中的变化。
如果忽略该参数,那么Excel将显示一个对话框询问是否保存工作簿中的变化。
参数RouteWorkbook指出工作簿传送的问题。
如果工作簿不需要传送给下一个收件人(没有传送名单或已经传送),则忽略该参数。
否则,Excel将根据该参数的值传送工作簿。
如果将该参数设置为True,则将工作簿传送给下一个收件人。
如果设置为False,则不发送工作簿。
如果忽略,则要求用户确认是否发送工作簿。
注意,Close方法检查工作簿的Saved属性,以决定是否提示用户保存工作簿所发生的变化。
如果将Saved属性的值设置为True,那么Close方法将不会警告而直接关闭工作簿,并不会保存工作簿中所发生的任何变化。
应用示例12:
保存并关闭所有工作簿
SubSaveAndCloseAllWorkbooks()
Ifwbk.Name<
ThisWorkbook.NameThen
wbk.CloseSaveChanges:
ThisWorkbook.CloseSaveChanges:
应用示例13:
不保存而关闭工作簿
SubCloseWorkbook1()
不保存所作的改变而关闭本工作簿"
ActiveWorkbook.CloseFalse
或ActiveWorkbook.CloseSaveChanges:
=False
或ActiveWorkbook.Saved=True
EndSub<
pre>
<
spanstyle="
color:
#0000ff;
应用示例14:
保存而关闭工作簿<
/span>
prelang="
vb"
SubCloseWorkbook2()
保存所作的改变并关闭本工作簿"
ActiveWorkbook.CloseTrue
应用示例15:
关闭工作簿并将其彻底删除
SubKillMe()
WithThisWorkbook
.Saved=True
.ChangeFileAccessMode:
=xlReadOnly
Kill.FullName
.CloseFalse
[应用13]打印预览工作簿(PrintPreview方法)
使用PrintPreview方法按工作簿打印后的外观效果显示工作簿的预览,其语法为:
Workbook.PrintPreview(EnableChanges)
参数EnableChanges指定用户是否可更改边距和打印预览中可用的其他页面设置选项。
[应用14]打印工作簿(PrintOut方法)
使用PrintOut方法打印完整的工作簿(当然,该方法也应用于其它一些对象,例如Range、Worksheet、Chart),其语法为:
Workbook.PrintOut(From,To,Copies,Preview,ActivePrinter,PrintToFile,Collate,PrToFileName,IgnorePrintAreas)
参数From指定需要打印第一页的页码,参数To指定要打印的最后一页的页码,如果忽略这些参数,将打印整个对象。
参数Copies指定要打印副本的数量,默认值为1。
如果参数Preview设置为True,那么将弹出打印预览而不是立即打印。
使用参数ActivePrinter设置活动打印机的名称。
如果将参数PrintToFile设置为True,那么将工作簿打印到文件。
此时,如果没有指定参数PrToFileName的值,那么Excel将提示用户输入要使用的输出文件的文件名。
使用参数PrToFileName指定要打印到的文件名。
将参数Collate设置为True,以逐份打印副本。
将参数IgnorePrintAreas设置为真,则忽略打印区域而打印整个对象。
[应用15]保护工作簿(Protect方法)
使用Protect方法保护工作簿,使其不能够被修改,其语法为:
Workbook.Protect(Password,Structure,Windows)
其中,参数Password用来指定一个密码,所设置的密码区分大小写。
如果省略该参数,不用密码就可以取消对工作簿的保护。
否则,必须指定密码才能取消对工作簿的保护。
将参数Structure的值设置为True,以保护工作簿的结构,即工作簿中工作表的相关位置。
此时不能