EXCEL Workbook对象应用大全.docx

上传人:b****6 文档编号:7328833 上传时间:2023-01-23 格式:DOCX 页数:60 大小:225.50KB
下载 相关 举报
EXCEL Workbook对象应用大全.docx_第1页
第1页 / 共60页
EXCEL Workbook对象应用大全.docx_第2页
第2页 / 共60页
EXCEL Workbook对象应用大全.docx_第3页
第3页 / 共60页
EXCEL Workbook对象应用大全.docx_第4页
第4页 / 共60页
EXCEL Workbook对象应用大全.docx_第5页
第5页 / 共60页
点击查看更多>>
下载资源
资源描述

EXCEL Workbook对象应用大全.docx

《EXCEL Workbook对象应用大全.docx》由会员分享,可在线阅读,更多相关《EXCEL Workbook对象应用大全.docx(60页珍藏版)》请在冰豆网上搜索。

EXCEL Workbook对象应用大全.docx

EXCELWorkbook对象应用大全

Workbook对象应用大全

Workbook对象代表一个工作簿,Workbooks集合对象则代表同一Excel进程中打开的所有工作簿对象。

[应用1]创建新工作簿(Add方法)

使用Add方法在Workbooks集合中创建新工作簿,所创建的工作簿为活动工作簿。

其语法为:

Workbooks.Add(Template)

参数Template可选,决定如何创建新工作簿。

如果将该参数设置为已存在的Excel模板文件名称,那么将以该文件作为模板创建工作簿。

该参数可以为下列XlWBATemplate常量之一:

xlWBATChart(值-4109,代表图表)、xlWBATExcel4IntlMacroSheet(值4)、xlWBATExcel4MacroSheet(值3)、xlWBATWorksheet(值-4167,代表工作表)。

在创建新工作簿时,如果指定该参数,那么将创建包含指定类型工作表的工作簿;如果省略该参数,那么将创建包含一定数量空工作表的工作簿,工作表数为SheetsInNewWorkbook属性所设置的数量。

应用示例1:

创建一个新工作簿

SubCreateNewWorkbook1()

MsgBox"将创建一个新工作簿."

Workbooks.Add

EndSub

应用示例2:

创建一个新工作簿并命名工作表且添加数据

SubCreateNewWorkbook2()

DimwbAsWorkbook

DimwsAsWorksheet

DimiAsLong

MsgBox"将创建一个新工作簿,并预设工作表格式."

Setwb=Workbooks.Add

Setws=wb.Sheets

(1)

ws.Name="产品汇总表"

ws.Cells(1,1)="序号"

ws.Cells(1,2)="产品名称"

ws.Cells(1,3)="产品数量"

Fori=2To10

ws.Cells(i,1)=i-1

Nexti

EndSub

应用示例3:

创建带有指定数量工作表的工作簿

SubtestNewWorkbook()

MsgBox"创建一个带有10个工作表的新工作簿"

DimwbAsWorkbook

Setwb=NewWorkbook(10)

EndSub

 

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

MsgBox"将D盘中的<测试.xls>工作簿以只读方式打开"

fname="D:

\测试.xls"

Workbooks.OpenFilename:

=fname,ReadOnly:

=True

EndSub

[应用3]访问特定的工作簿

使用Item属性返回Workbooks集合中特定的工作簿。

例如:

Workbooks.Item

(1)

返回Workbooks集合中的第一个工作簿。

由于Item属性是缺省的属性,因此上述代码也可以简写为:

Workbooks

(1)

然而,使用索引号来指定工作簿是不可靠的,最好使用工作簿的具体名称来指定特定的工作簿,例如:

Workbooks("MyBook.xlsx")

注意,当用户使用“新建”命令创建一个新工作簿(假设该工作簿系统默认名称为Book2)时,在没有保存该工作簿前,应该使用下面的代码指定该工作簿:

Workbooks("Book2")

此时,如果使用下面的代码指定该工作簿:

Workbooks("Book2.xlsx")

将会产生运行时错误:

下标越界。

[应用4]激活工作簿(Activate方法)

使用Activate方法激活指定的工作簿,例如:

Workbooks("MyWorkbook").Activate

[应用5]获得当前打开的工作簿数(Count属性)

使用Workbooks集合对象的Count属性来获得当前打开的工作簿数,例如:

Workbooks.Count

[应用6]判断工作簿是否是只读的(ReadOnly属性)

如果工作簿以只读方式打开,那么ReadOnly属性的值为True。

[应用7]获得工作簿的路径和名称(Name属性、FullName属性、Path属性、CodeName属性)

使用Workbook对象的Name属性可以返回工作簿的名称。

例如,下面的函数可以返回当前工作簿的名称:

FunctionMyName()AsString

MyName=ThisWorkbook.Name

EndFunction

使用Workbook对象的FullName属性可以返回工作簿的路径和名称。

例如,下面的函数可以返回当前工作簿的路径和名称:

FunctionMyName()AsString

MyName=ThisWorkbook.Name

EndFunction

使用Workbook对象的Path属性可以返回工作簿文件的路径。

使用Workbook对象的CodeName属性返回工作簿对象的代码名。

上述属性均为只读属性。

应用示例5:

一些工作簿通用属性示例

SubtestGeneralWorkbookInfo()

MsgBox"本工作簿的名称为"&ActiveWorkbook.Name

MsgBox"本工作簿带完整路径的名称为"&ActiveWorkbook.FullName

MsgBox"本工作簿对象的代码名为"&ActiveWorkbook.CodeName

MsgBox"本工作簿的路径为"&ActiveWorkbook.Path

IfActiveWorkbook.ReadOnlyThen

MsgBox"本工作簿已经是以只读方式打开"

Else

MsgBox"本工作簿可读写."

EndIf

IfActiveWorkbook.SavedThen

MsgBox"本工作簿已保存."

Else

MsgBox"本工作簿需要保存."

EndIf

EndSub

[应用8]保存工作簿(Save方法)

使用Save方法保存对工作簿所作的所有更改,其语法为:

Workbook.Save

应用示例6:

保存已存在的所有工作簿

SubSaveAllWorkbooks()

DimwbkAsWorkbook

ForEachwbkInWorkbooks

Ifwbk.Path<>""Thenwbk.Save

Nextwbk

EndSub

如果某工作簿的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:

="D:

\SalesData.xlsx"

EndSub

这里使用了Add方法和SaveAs方法,添加一个新工作簿并将该工作簿以文件名SalesData.xlsx保存在D盘中。

其中,语句Application.DisplayAlerts=False表示禁止弹出警告对话框。

应用示例8:

另存已有的工作簿

SubSaveWorkbook2()

DimoldNameAsString,newNameAsString

DimfolderNameAsString,fnameAsString

oldName=ActiveWorkbook.Name

newName="new"&oldName

MsgBox"将<"&oldName&">以<"&newName&">的名称保存"

folderName=Application.DefaultFilePath

fname=folderName&"\"&newName

ActiveWorkbook.SaveAsfname

EndSub

上述代码将当前工作簿以一个新名(即new加原名)保存在默认文件夹中。

应用示例9:

备份工作簿

SubCreateBak1()

MsgBox"保存工作簿并建立备份工作簿"

ActiveWorkbook.SaveAsCreateBackup:

=True

EndSub

上述代码在当前文件夹中建立工作簿的备份。

SubCreateBak2()

MsgBox"保存工作簿时,若已建立了备份,则将出现包含True的信息框,否则出现False."

MsgBoxActiveWorkbook.CreateBackup

EndSub

[应用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

Else

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

Application.StatusBar="正在备份工作簿..."

.SaveCopyAsBackupFileName

OK=True

EndWith

EndIf

NotAbleToSave:

Setawb=Nothing

Application.StatusBar=False

IfNotOKThen

MsgBox"备份工作簿未保存!

",vbExclamation,ThisWorkbook.Name

EndIf

EndSub

在当前工作簿中运行本示例代码后,将以与工作簿相同的名称但后缀名为.bak备份工作簿,且该备份与当前工作簿在同一文件夹中。

应用示例11:

保存当前工作簿的副本到其它位置来备份工作簿

SubSaveWorkbookBackupToFloppyD()

DimawbAsWorkbook,BackupFileNameAsString,iAsInteger,OKAsBoolean

IfTypeName(ActiveWorkbook)="Nothing"ThenExitSub

Setawb=ActiveWorkbook

Ifawb.Path=""Then

Application.Dialogs(xlDialogSaveAs).Show

Else

BackupFileName=awb.Name

OK=False

OnErrorGoToNotAbleToSave

IfDir("D:

\"&BackupFileName)<>""Then

Kill"D:

\"&BackupFileName

EndIf

Withawb

Application.StatusBar="正在保存工作簿..."

.Save

Application.StatusBar="正在备份工作簿..."

.SaveCopyAs"D:

\"&BackupFileName

OK=True

EndWith

EndIf

NotAbleToSave:

Setawb=Nothing

Application.StatusBar=False

IfNotOKThen

MsgBox"备份工作簿未保存!

",vbExclamation,ThisWorkbook.Name

EndIf

EndSub

上述程序将当前工作簿进行复制并以与当前工作簿相同的名称保存在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()

DimwbkAsWorkbook

ForEachwbkInWorkbooks

Ifwbk.Name<>ThisWorkbook.NameThen

wbk.CloseSaveChanges:

=True

EndIf

Nextwbk

ThisWorkbook.CloseSaveChanges:

=True

EndSub

应用示例13:

不保存而关闭工作簿

SubCloseWorkbook1()

MsgBox"不保存所作的改变而关闭本工作簿"

ActiveWorkbook.CloseFalse

'或ActiveWorkbook.CloseSaveChanges:

=False

'或ActiveWorkbook.Saved=True

EndSub

#0000ff;">应用示例14:

保存而关闭工作簿

SubCloseWorkbook2()

MsgBox"保存所作的改变并关闭本工作簿"

ActiveWorkbook.CloseTrue

EndSub

应用示例15:

关闭工作簿并将其彻底删除

SubKillMe()

WithThisWorkbook

.Saved=True

.ChangeFileAccessMode:

=xlReadOnly

Kill.FullName

.CloseFalse

EndWith

EndSub

[应用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,那么将弹出打印预览而不是立即打印。

默认值为False。

使用参数ActivePrinter设置活动打印机的名称。

如果将参数PrintToFile设置为True,那么将工作簿打印到文件。

此时,如果没有指定参数PrToFileName的值,那么Excel将提示用户输入要使用的输出文件的文件名。

使用参数PrToFileName指定要打印到的文件名。

将参数Collate设置为True,以逐份打印副本。

将参数IgnorePrintAreas设置为真,则忽略打印区域而打印整个对象。

[应用15]保护工作簿(Protect方法)

使用Protect方法保护工作簿,使其不能够被修改,其语法为:

Workbook.Protect(Password,Structure,Windows)

所有参数均为可选参数。

其中,参数Password用来指定一个密码,所设置的密码区分大小写。

如果省略该参数,不用密码就可以取消对工作簿的保护。

否则,必须指定密码才能取消对工作簿的保护。

将参数Structure的值设置为True,以保护工作簿的结构,即工作簿中工作表的相关位置。

此时不能

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电子电路

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1