Workbook对象
一个Workbook对象代表一个打开的Excel工作簿,正如我们已讨论过的,Workbook对象存储在Workbooks集合中。
Workbook对象共有103个属性和方法,如下表1。
表1 Workbook对象成员列表
_CodeName FullName RefreshAll
_PrintOut<v9> FullNameURLEncoded<v10> RejectAllChanges
_Protect<v10> HasMailer ReloadAs<v9>
_ReadOnlyRecommended<v10> HasPassword RemovePersonalInformation<v10>
_SaveAs<v10> HasRoutingSlip RemoveUser
AcceptAllChanges HighlightChangesOnScreen Reply
AcceptLabelsInFormulas HighlightChangesOptions ReplyAll
Activate HTMLProject<v9> ReplyWithChanges<v10>
ActiveChart IsAddin ResetColors
ActiveSheet IsInplace RevisionNumber
AddToFavorites KeepChangeHistory Route
Application Keywords Routed
Author LinkInfo RoutingSlip
AutoUpdateFrequency LinkSources RunAutoMacros
AutoUpdateSaveChanges ListChangesOnNewSheet Save
BreakLink<v10> Mailer SaveAs
BuiltinDocumentProperties MergeWorkbook SaveCopyAs
CalculationVersion<v9> Modules Saved
CanCheckIn<v10> MultiUserEditing SaveLinkValues
ChangeFileAccess Name Sblt<v9>
ChangeHistoryDuration Names SendForReview<v10>
ChangeLink NewWindow SendMail
Charts OnSave SendMailer
CheckIn<v10> OnSheetActivate SetLinkOnData
Close OnSheetDeactivate SetPasswordEncryptionOptions<v10>
CodeName OpenLinks Sheets
Colors Parent ShowConflictHistory
CommandBars Password<v10> ShowPivotTableFieldList<v10>
Comments PasswordEncryptionAlgorithm<v10> SmartTagOptions<v10>
ConflictResolution PasswordEncryptionFileProperties<v10> Styles
Container PasswordEncryptionKeyLength<v10> Subject
CreateBackup PasswordEncryptionProvider<v10> TemplateRemoveExtData
Creator Path Title
CustomDocumentProperties PersonalViewListSettings Unprotect
CustomViews PersonalViewPrintSettings UnprotectSharing
Date1904 PivotCaches UpdateFromFile
DeleteNumberFormat PivotTableWizard UpdateLink
DialogSheets Post UpdateLinks<v10>
DisplayDrawingObjects PrecisionAsDisplayed UpdateRemoteReferences
Dummy16<v10> PrintOut UserControl
Dummy17<v10> PrintPreview UserStatus
EnableAutoRecover<v10> Protect VBASigned<v9>
EndReview<v10> ProtectSharing VBProject
EnvelopeVisible<v9> ProtectStructure WebOptions<v9>
Excel4IntlMacroSheets ProtectWindows WebPagePreview<v9>
Excel4MacroSheets PublishObjects<v9> Windows
ExclusiveAccess PurgeChangeHistoryNow Worksheets
FileFormat ReadOnly WritePassword<v10>
FollowHyperlink ReadOnlyRecommended WriteReserved
ForwardMailer RecheckSmartTags<v10> WriteReservedBy
表1中所列的一些成员仅返回Workbook对象的子对象,这些子对象见图4。
表2给出了返回子对象的Workbook对象的成员。
图4 Workbook对象的子对象
表2 返回子对象的Workbook对象成员
名称 返回类型
ActiveChart Chart
Application Application
Charts Sheets
CustomViews CustomViews
DialogSheets Sheets
Excel4IntlMacroSheets Sheets
Excel4MacroSheets Sheets
Mailer Mailer
Modules Sheets
Names Names
NewWindow Window
PivotCaches PivotCaches
PublishObjects PublishObjects
RoutingSlip RoutingSlip
Sheets Sheets
SmartTagOptions SmartTagOptions
Styles Styles
WebOptions WebOptions
Windows Windows
Worksheets Sheets
在表2中有一些项目值得注意。首先,ActiveSheet属性可能返回Chart对象或者Worksheet对象,这取决于当前工作簿中所激活的是哪类对象。
第二,Charts、Sheets和Worksheets属性都返回一个(不同的)Sheets集合。特别地,Charts对象返回在工作簿中包含所有图表工作表的Sheets集合(这不包括嵌入在工作表中的图表)。Worksheets属性返回在工作簿中所有工作表的Sheets集合。最后,Sheets属性返回所有工作表和图表工作表的Sheets集合。这是一个相当少的一个集合包含多于一类对象的例子。注意,在Excel对象模型中没有Sheet对象。
下面,让我们介绍表1中一些常用的成员。
Activate方法
该方法激活工作簿,语法很简单:
Workbooks(“MyWorkBook”).Activate
注意,Workbooks集合是全局的,不需要用Application进行限定。
Close方法
Close方法的作用是关闭工作簿。它的语法是:
工作簿对象.Close(SaveChange,FileName,RouteWorkbook)
注意,Workbook对象的Close方法有三个参数,与Workbooks集合中的Close方法没有参数不一样。
可选参数 SaveChanges用于在关闭工作簿前保存工作簿所发生的变化,特别地,如果工作簿没有变化,该参数将被忽略。如果工作簿显现在其它打开的窗口中,该参数也被忽略。另一方面,如果工作簿发生了变化且没有显现在任何其它打开的窗口中,该参数将生效。
在这种情况下,如果 SaveChanges的值为True,将存储该变化。如果仍没有一个文件名与工作簿相联系(也就是说,如果先前该工作簿没有保存),那么将使用在参数 FileName中所设置的名称。如果参数 FileName也被忽略,Excel将提示用户输入一个文件名。如果参数 SaveChanges的值为False,则工作簿所发生的变化不会被保存。最后,如果参数 SaveChanges被忽略,Excel将显示一个对话框询问是否保存工作簿所发生的变化。简而言之,该方法的行为正如你所希望的。
可选参数 RouteWorkbook指出工作簿传送的问题,如果您对该参数感兴趣,可以在ExcelVBA帮助文件中获得更多的信息。
很重要的是,您要注意Close方法检查工作簿的Saved属性,以决定是否去提示用户保存工作簿所发生的变化。如果我们设置Saved属性的值为True,那么Close方法将没有警告而直接关闭工作簿,不会保存工作簿所发生的任何变化。
DisplayDrawingObjects属性
该属性返回或者设置一个值,表示如何显示形状,可以是下面的XlDisplayShapes常量之一:
Enum XlDisplayShapes
XlDisplayShapes=-4101
xlPlaceholders=2
xlHide=3
End Enum
FileFormat属性(只读)
该属性返回工作簿文件格式或者类型,可以是下面的XlFileFormat常量之一:
Enum XlFileFormat
xlAddIn = 18
xlCSV = 6
xlCSVMac = 22
xlCSVMSDOS = 24
xlCSVWindows = 23
xlCurrentPlatformText = -4158
xlDBF2 = 7
xlDBF3 = 8
xlDBF4 = 11
xlDIF = 9
xlExcel2 = 16
xlExcel2FarEast = 27
xlExcel3 = 29
xlExcel4 = 33
xlExcel4Workbook = 35
xlExcel5 = 39
xlExcel7 = 39
xlExcel9795 = 43
xlHtml = 44
xlIntlAddIn = 26
xlIntlMacro = 25
xlSYLK = 2
xlTemplate = 17
xlTextMac = 19
xlTextMSDOS = 21
xlTextPrinter = 36
xlTextWindows = 20
xlUnicodeText = 42
xlWebArchive = 45
xlWJ2WD1 = 14
This is the xlWJ3 = 40
xlWJ3FJ3 = 41
xlWK1 = 5
xlWK1ALL = 31
xlWK1FMT = 30
xlWK3 = 15
xlWK3FM3 = 32
xlWK4 = 38
xlWKS = 4
xlWorkbookNormal = -4143
xlWorks2FarEast = 28
xlWQ1 = 34
xlXMLSpreadsheet = 46
End Enum
Name,FullName,Path属性
Name属性返回工作簿的名字,Path属性返回工作簿文件路径,FullName属性返回工作簿文件完整的描述(路径和文件名)。所有这些属性都是只读的。
注意,使用如下代码:
Application.Path
将返回Excel应用程序路径(而不是工作簿路径)。
一个Workbook对象代表一个打开的Excel工作簿,正如我们已讨论过的,Workbook对象存储在Workbooks集合中。
Workbook对象共有103个属性和方法,如下表1。
表1 Workbook对象成员列表
_CodeName FullName RefreshAll
_PrintOut<v9> FullNameURLEncoded<v10> RejectAllChanges
_Protect<v10> HasMailer ReloadAs<v9>
_ReadOnlyRecommended<v10> HasPassword RemovePersonalInformation<v10>
_SaveAs<v10> HasRoutingSlip RemoveUser
AcceptAllChanges HighlightChangesOnScreen Reply
AcceptLabelsInFormulas HighlightChangesOptions ReplyAll
Activate HTMLProject<v9> ReplyWithChanges<v10>
ActiveChart IsAddin ResetColors
ActiveSheet IsInplace RevisionNumber
AddToFavorites KeepChangeHistory Route
Application Keywords Routed
Author LinkInfo RoutingSlip
AutoUpdateFrequency LinkSources RunAutoMacros
AutoUpdateSaveChanges ListChangesOnNewSheet Save
BreakLink<v10> Mailer SaveAs
BuiltinDocumentProperties MergeWorkbook SaveCopyAs
CalculationVersion<v9> Modules Saved
CanCheckIn<v10> MultiUserEditing SaveLinkValues
ChangeFileAccess Name Sblt<v9>
ChangeHistoryDuration Names SendForReview<v10>
ChangeLink NewWindow SendMail
Charts OnSave SendMailer
CheckIn<v10> OnSheetActivate SetLinkOnData
Close OnSheetDeactivate SetPasswordEncryptionOptions<v10>
CodeName OpenLinks Sheets
Colors Parent ShowConflictHistory
CommandBars Password<v10> ShowPivotTableFieldList<v10>
Comments PasswordEncryptionAlgorithm<v10> SmartTagOptions<v10>
ConflictResolution PasswordEncryptionFileProperties<v10> Styles
Container PasswordEncryptionKeyLength<v10> Subject
CreateBackup PasswordEncryptionProvider<v10> TemplateRemoveExtData
Creator Path Title
CustomDocumentProperties PersonalViewListSettings Unprotect
CustomViews PersonalViewPrintSettings UnprotectSharing
Date1904 PivotCaches UpdateFromFile
DeleteNumberFormat PivotTableWizard UpdateLink
DialogSheets Post UpdateLinks<v10>
DisplayDrawingObjects PrecisionAsDisplayed UpdateRemoteReferences
Dummy16<v10> PrintOut UserControl
Dummy17<v10> PrintPreview UserStatus
EnableAutoRecover<v10> Protect VBASigned<v9>
EndReview<v10> ProtectSharing VBProject
EnvelopeVisible<v9> ProtectStructure WebOptions<v9>
Excel4IntlMacroSheets ProtectWindows WebPagePreview<v9>
Excel4MacroSheets PublishObjects<v9> Windows
ExclusiveAccess PurgeChangeHistoryNow Worksheets
FileFormat ReadOnly WritePassword<v10>
FollowHyperlink ReadOnlyRecommended WriteReserved
ForwardMailer RecheckSmartTags<v10> WriteReservedBy
表1中所列的一些成员仅返回Workbook对象的子对象,这些子对象见图4。
表2给出了返回子对象的Workbook对象的成员。
图4 Workbook对象的子对象
表2 返回子对象的Workbook对象成员
名称 返回类型
ActiveChart Chart
Application Application
Charts Sheets
CustomViews CustomViews
DialogSheets Sheets
Excel4IntlMacroSheets Sheets
Excel4MacroSheets Sheets
Mailer Mailer
Modules Sheets
Names Names
NewWindow Window
PivotCaches PivotCaches
PublishObjects PublishObjects
RoutingSlip RoutingSlip
Sheets Sheets
SmartTagOptions SmartTagOptions
Styles Styles
WebOptions WebOptions
Windows Windows
Worksheets Sheets
在表2中有一些项目值得注意。首先,ActiveSheet属性可能返回Chart对象或者Worksheet对象,这取决于当前工作簿中所激活的是哪类对象。
第二,Charts、Sheets和Worksheets属性都返回一个(不同的)Sheets集合。特别地,Charts对象返回在工作簿中包含所有图表工作表的Sheets集合(这不包括嵌入在工作表中的图表)。Worksheets属性返回在工作簿中所有工作表的Sheets集合。最后,Sheets属性返回所有工作表和图表工作表的Sheets集合。这是一个相当少的一个集合包含多于一类对象的例子。注意,在Excel对象模型中没有Sheet对象。
下面,让我们介绍表1中一些常用的成员。
Activate方法
该方法激活工作簿,语法很简单:
Workbooks(“MyWorkBook”).Activate
注意,Workbooks集合是全局的,不需要用Application进行限定。
Close方法
Close方法的作用是关闭工作簿。它的语法是:
工作簿对象.Close(SaveChange,FileName,RouteWorkbook)
注意,Workbook对象的Close方法有三个参数,与Workbooks集合中的Close方法没有参数不一样。
可选参数 SaveChanges用于在关闭工作簿前保存工作簿所发生的变化,特别地,如果工作簿没有变化,该参数将被忽略。如果工作簿显现在其它打开的窗口中,该参数也被忽略。另一方面,如果工作簿发生了变化且没有显现在任何其它打开的窗口中,该参数将生效。
在这种情况下,如果 SaveChanges的值为True,将存储该变化。如果仍没有一个文件名与工作簿相联系(也就是说,如果先前该工作簿没有保存),那么将使用在参数 FileName中所设置的名称。如果参数 FileName也被忽略,Excel将提示用户输入一个文件名。如果参数 SaveChanges的值为False,则工作簿所发生的变化不会被保存。最后,如果参数 SaveChanges被忽略,Excel将显示一个对话框询问是否保存工作簿所发生的变化。简而言之,该方法的行为正如你所希望的。
可选参数 RouteWorkbook指出工作簿传送的问题,如果您对该参数感兴趣,可以在ExcelVBA帮助文件中获得更多的信息。
很重要的是,您要注意Close方法检查工作簿的Saved属性,以决定是否去提示用户保存工作簿所发生的变化。如果我们设置Saved属性的值为True,那么Close方法将没有警告而直接关闭工作簿,不会保存工作簿所发生的任何变化。
DisplayDrawingObjects属性
该属性返回或者设置一个值,表示如何显示形状,可以是下面的XlDisplayShapes常量之一:
Enum XlDisplayShapes
XlDisplayShapes=-4101
xlPlaceholders=2
xlHide=3
End Enum
FileFormat属性(只读)
该属性返回工作簿文件格式或者类型,可以是下面的XlFileFormat常量之一:
Enum XlFileFormat
xlAddIn = 18
xlCSV = 6
xlCSVMac = 22
xlCSVMSDOS = 24
xlCSVWindows = 23
xlCurrentPlatformText = -4158
xlDBF2 = 7
xlDBF3 = 8
xlDBF4 = 11
xlDIF = 9
xlExcel2 = 16
xlExcel2FarEast = 27
xlExcel3 = 29
xlExcel4 = 33
xlExcel4Workbook = 35
xlExcel5 = 39
xlExcel7 = 39
xlExcel9795 = 43
xlHtml = 44
xlIntlAddIn = 26
xlIntlMacro = 25
xlSYLK = 2
xlTemplate = 17
xlTextMac = 19
xlTextMSDOS = 21
xlTextPrinter = 36
xlTextWindows = 20
xlUnicodeText = 42
xlWebArchive = 45
xlWJ2WD1 = 14
This is the xlWJ3 = 40
xlWJ3FJ3 = 41
xlWK1 = 5
xlWK1ALL = 31
xlWK1FMT = 30
xlWK3 = 15
xlWK3FM3 = 32
xlWK4 = 38
xlWKS = 4
xlWorkbookNormal = -4143
xlWorks2FarEast = 28
xlWQ1 = 34
xlXMLSpreadsheet = 46
End Enum
Name,FullName,Path属性
Name属性返回工作簿的名字,Path属性返回工作簿文件路径,FullName属性返回工作簿文件完整的描述(路径和文件名)。所有这些属性都是只读的。
注意,使用如下代码:
Application.Path
将返回Excel应用程序路径(而不是工作簿路径)。