Excel Application对象开发指南文档格式.docx

上传人:b****6 文档编号:8389843 上传时间:2023-05-11 格式:DOCX 页数:14 大小:25.02KB
下载 相关 举报
Excel Application对象开发指南文档格式.docx_第1页
第1页 / 共14页
Excel Application对象开发指南文档格式.docx_第2页
第2页 / 共14页
Excel Application对象开发指南文档格式.docx_第3页
第3页 / 共14页
Excel Application对象开发指南文档格式.docx_第4页
第4页 / 共14页
Excel Application对象开发指南文档格式.docx_第5页
第5页 / 共14页
Excel Application对象开发指南文档格式.docx_第6页
第6页 / 共14页
Excel Application对象开发指南文档格式.docx_第7页
第7页 / 共14页
Excel Application对象开发指南文档格式.docx_第8页
第8页 / 共14页
Excel Application对象开发指南文档格式.docx_第9页
第9页 / 共14页
Excel Application对象开发指南文档格式.docx_第10页
第10页 / 共14页
Excel Application对象开发指南文档格式.docx_第11页
第11页 / 共14页
Excel Application对象开发指南文档格式.docx_第12页
第12页 / 共14页
Excel Application对象开发指南文档格式.docx_第13页
第13页 / 共14页
Excel Application对象开发指南文档格式.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Excel Application对象开发指南文档格式.docx

《Excel Application对象开发指南文档格式.docx》由会员分享,可在线阅读,更多相关《Excel Application对象开发指南文档格式.docx(14页珍藏版)》请在冰点文库上搜索。

Excel Application对象开发指南文档格式.docx

这一节详细介绍一些和Application对象相关的集合。

AddIns集合

AddIns集合表示所有当前加载的ExcelAdd-in。

你可以像枚举其它对象一样在你的程序中列举出关于add-in的不同类型信息。

下面的示例列举出当前加载到Excel中的Add-in的路径和名称。

SubListAddIns()

DimmyAddinAsAddIn

ForEachmyAddinInAddIns

MsgBoxmyAddin.FullName

Next

EndSub

Columns和Rows集合

这两个集合表示活动工作簿中的列和行。

分别使用它们选择指定的列和行。

Application.Columns(4).Select

这个语句选择D列,就像你通过点击用户界面中的列的顶部一样。

Application.Rows(5).Select

这个语句选择工作表中的第5行,就像你点击行的左边框一样。

Dialogs集合

Dialogs集合包括Excel程序中所有的对话框。

将在本文中后面部分更详细地讨论Dialogs集合。

Sheets集合

Sheets集合返回指定或活动工作簿中所有工作表的集合。

Sheets集合可以包含Chart或Worksheet对象。

下面示例打印出活动工作簿中所有的工作表。

Application.Sheets.PrintOut

这个示例循环工作簿中所有的工作表并打印出包含数据区域的任何工作表。

ForiSheet=1ToApplication.Sheets.Count

IfNotIsEmpty(Application.Sheets(iSheet).UsedRange)Then

Application.Sheets(iSheet).PrintOutcopies:

=1

EndIf

NextiSheet

Application对象的属性

有很多的属性可以用来访问Excel2007程序的各种对象,多得不能记住或在这里全部讨论。

幸运的是只有一部分是你可能经常使用的。

∙ActiveCell

∙ActiveChart

∙ActiveSheet

∙ActiveWindow

∙ActiveWorkbook

∙RangeSelection

∙Selection

∙StatusBar

∙ThisWorkbook

下面的内容演示这些常用属性的使用方法。

ActiveCell属性

Application对象的ActiveCell属性返回一个表示活动工作簿中活动工作表的活动单元格的Range对象。

如果你没有指定对象限定词,这个属性返回活动窗口的活动单元格。

注意区别活动单元格和选择的单元格。

活动单元格是当前选择中的一个单元格。

选择(Selection)可能包括一个单元格集合,但只有其中一个是活动单元格。

下面的示例改变活动单元格的字体格式。

注意为了确保你操作正确的单元格,工作表集合的Activate方法让Sheet1成为活动工作表。

Worksheets("

Sheet1"

).Activate

WithActiveCell.Font

.Bold=True

.Italic=True

EndWith

ActiveChart属性

ActiveChart属性返回表示活动图表的Chart对象,不管它是嵌入的图表还是图表工作表。

在一个嵌入的图表被选择或激活时,它就是活动图表。

下面的示例使用ActiveChart属性添加一个3维柱形图到月销售记录工作表中。

SubAddChart()

Charts.Add

WithActiveChart

.ChartType=xl3DColumn

.SetSourceDataSource:

=Sheets("

).Range("

B3:

H15"

.LocationWhere:

=xlLocationAsObject,Name:

="

MonthlySales"

.HasTitle=True

.ChartTitle.Characters.Text=MonthlySalesbyCategory

ActiveSheet属性

ActiveSheet属性返回一个表示当前选中的工作表(顶部工作表)的Worksheet对象。

在一个工作簿中只有一个工作表能成为活动工作表。

下面的示例显示活动工作表的名称。

MsgBox"

Thenameoftheactivesheetis"

&

amp;

ActiveSheet.Name

下面的示例将活动工作表复制用户指定的次数并放置在Sheet1之前。

SubCopyActiveSheet()

DimxAsInteger

x=InputBox("

Enternumberoftimestocopyactivesheet"

Fornumtimes=1Tox

'

PutcopiesinfrontofSheet1.

ActiveWorkbook.ActiveSheet.Copy_

Before:

=ActiveWorkbook.Sheets("

ActiveWindow属性

ActiveWindow属性返回一个表示活动窗口(顶部窗口)的Window对象。

下面的示例显示活动窗口的名称(Caption属性)。

Thenameoftheactivewindowis"

ActiveWindow.Caption

Caption属性作为活动窗口的名称允许你通过使用友好的名称而不是序号来获得窗口。

下面的示例选择并打印一个工作表,然后对第二个工作表重复此过程。

SubPrintWorksheet()

Application.ScreenUpdating=False

Sheets("

Sales"

).Select

ActiveWindow.SelectedSheets.PrintOutCopies:

=1,Collate:

=True

Expenses"

在这个例子中,你可能疑惑为什么设置ScreenUpdating属性为False。

当Excel执行一系列任务时,屏幕被更新并刷新很多次,这将导致屏幕闪烁。

设置ScreenUpdating属性为False可以消除闪烁。

另外,因为电脑处理器不需要暂停来刷新屏幕,这样也可以让大型程序运行得较快一点。

ActiveWorkbook属性

ActiveWorkbook属性返回一个表示活动窗口(顶部窗口)中的工作簿的Workbook对象。

这个示例显示活动工作簿的名称。

Thenameoftheactiveworkbookis"

ActiveWorkbook.Name

下面示例设置计算模式为手动(这样其它工作簿将不计算),然后循环并计算活动工作簿的每个工作表。

SubCalcBook()

DimwksAsWorksheet

Application.Calculation=xlManual

ForEachwksInActiveWorkbook.Worksheets

wks.Calculate

Setwks=Nothing

RangeSelection属性

RangeSelection属性返回一个表示指定窗口中工作表里选择的单元格的Range对象,即使在工作表中一个图表对象已经被选择或激活。

这个示例显示活动窗口中工作表所选择单元格的地址。

MsgBoxApplication.ActiveWindow.RangeSelection.Address

当你选择了一个范围,RangeSelection属性和Selection对象表示同样一个范围。

当你选择一个图表,RangeSelection属性返回之前选择的范围。

Selection属性将在下一节中详细介绍。

这里介绍的语法RangeSelection.Name.Name在Office2003和2007中使用时都出现错误,如果该代码生效,必须先设置单元格A1的名称。

并且应该不是单元格内容的前三个字符,而是名称的前三个字符。

这应该是原文的疏漏。

下面的示例显示一个单元格中的前三个字符。

Range("

A1"

MsgBoxLeft(ActiveWindow.RangeSelection.Name.Name,3)

你可能奇怪为什么使用这样的语法

ActiveWindow.RangeSelection.Name.Name

当你选择一个范围,使用RangeSelection.Name方法可以获取像Sheet1!

$A$1:

$B$15这样的范围地址。

另外,使用RangeSelection.Name.Name方法可以获取命名像MyRange1这样的范围本身的名称。

Selection属性

Selection属性返回活动窗口中被选择的对象。

例如,对于单元格,这个属性返回Range对象;

对于图表,它返回Chart对象。

如果使用属性而没有对象限定符,等于使用Application.Selection。

这个示例清除Sheet1所选的内容。

).ActivateSelection.Clear

下面的例子将所选范围的总行数保存到变量NumRows。

NumRows=0

ForEachareaInSelection.Areas

NumRows=NumRows+area.Rows.Count

Nextarea

这个例子统计所选单元格的总数并在消息框中显示结果。

SubCount_Selection()

DimcellAsObject

DimcountAsInteger

count=0

ForEachcellInSelection

count=count+1

Nextcell

MsgBoxcount&

"

item(s)selected"

StatusBar属性

StatusBar属性返回或设置状态栏的文本。

这个属性允许你更改在Excel窗口底部的状态栏中显示的信息。

它对在运算过程需要较长时间来完成时让用户知道正在运行的进度非常有帮助。

如果Excel控制状态栏时StatusBar属性返回False。

另外,如需恢复默认状态栏文本,只需设置属性值为False即可;

甚至在状态栏隐藏时也有效。

例如,使用下面的方式对每个处理的文件你可以给StatusBar属性赋值。

DimFileNumAsInteger

FileNum=0

ForEachfileinFiles

Dosomethinghere.

Application.StatusBar="

NowprocessingFile"

FileNum

FileNum=FileNum+1

然后当过程结束,你需要使用下面的语句将状态栏设置回正常状态。

Application.StatusBar=False

你可以创建你自己的过程使用StatusBar属性显示一个宏或其它过程的进度。

SubShowStatusBarProgress()

DimiAsLong

DimpctDoneAsDouble

DimnumSquaresAsLong

ConstMAXSQRAsLong=15

Fori=1To30

pctDone=i/30

numSquares=pctDone*MAXSQR

Application.StatusBar=Application.Rept(Chr(31),numSquares)

Application.WaitNow+TimeSerial(0,0,1)

Nexti

这个例子在状态栏上显示最大15个方块(由常数MAXSQR定义)。

这个方块通过使用ASCII字符31来产生。

这个缺少关于宏需要多长时间的视觉指示,它仅表明宏正在进行。

Wait方法模拟一个宏需要长时间来执行。

ThisWorkbook属性

ThisWorkbook属性返回一个表示当前运行的宏代码所在工作簿的Workbook对象。

这个属性允许载入宏定义包含代码的工作簿。

这种情况下ActiveWorkbook属性并不起作用,因为活动工作簿可能并不是包含载入宏代码的工作簿。

换句话说,ActiveWorkbook属性不返回载入宏工作簿;

它返回调用载入宏的工作簿。

如果你使用你的VisualBasic代码创建载入宏,你应该使用ThisWorkbook属性来限定任何必须运行在包含载入宏的工作簿上的语句。

下面示例关闭包含示例代码的工作簿。

如果对工作簿的修改不被保存。

ThisWorkbook.CloseSaveChanges:

=False

下面的示例循环每个打开的工作簿并关闭它。

然后关闭包含这个代码的工作簿。

PrivateoExcelAsExcel.Application

PrivatewbkAsExcel.Workbook

SubCloseOpenWrkBks()

DimwrkbAsWorkbook

ForEachwbkInApplication.Workbooks

Ifwrkb.Name<

>

ThisWorkbook.NameThen

wbk.CloseTrue

Nextwbk

ThisWorkbook.CloseTrue

Application对象方法

除了Application对象属性外,下面将介绍一些更加常用的方法。

FindFile方法和Dialogs集合

同GetOpenFilename方法不同,FindFile方法显示Open对话框并允许用户打开一个文件。

如果新文件成功打开,此方法返回True。

如果用户取消对话框,此方法返回False。

下面示例显示一个消息框提示用户打开一个指定文件,然后显示Open对话框。

如果用户不能打开文件,显示一个消息框。

SubOpenFile1()

DimbSuccessAsBoolean

Msgbox"

PleaselocatetheMonthlySales.xlsfile."

bSuccess=Application.FindFile

IfNotbSuccessThen

Filenotopen."

你也可以通过使用Dialogs集合细目的其中一个打开特别的对话框来完成同样的事情。

使用Dialogs集合的一个好处是当你使用Show方法时,你可以传递参数给它来修改内置对话框的默认行为。

例如,xlDialogOpen的参数有:

file_text,update_links,read_only,format,prot_pwd,write_res_pwd,ignore_rorec,file_origin,custom_delimit,add_logical,editable,file_access,notify_logical,converter.

注意:

如需查找某个特定的对话框的参数,在Excel帮助文档的“内置对话框参数列表”中找到相应的对话框常数。

下面的例子显示“打开”对话框并设置“Book1.xls”在文件名下拉列表框中,用户不需要选择文件就可以在对话框中显示文件名。

SubOpenFile2()

Application.Dialogs(XlBuiltInDialog.xlDialogOpen).Showarg1:

Book1.xls"

Dialogs集合最激动人心的部分是你可以使用它显示任何Excel对话框-大约250种。

你可以通过下面的步骤查看Dialogs集合的完整对话框列表。

1.打开VisualBasic编辑器。

2.单击菜单“视图”->

“对象浏览器”,显示对象浏览器窗口,也可以按F2。

3.在搜索框中输入xlBuiltInDialog。

4.单击Search按钮。

GetOpenFilename方法

GetOpenFilename方法显示标准“打开”对话框并返回用户选择的文件名,实际上并未打开任何文件。

GetOpenFilename方法给你最大的控制从你的程序中打开一个工作簿,因为它所做的就是以字符串返回用户选择的文件完整路径和文件名。

获得文件名后接着做什么就取决于你自己了。

例如,你可能传递结果给OpenText方法。

这个方法的语法如下(所有的参数都是可选的):

GetOpenFilename(FileFilter,FilterIndex,Title,ButtonText,MultiSelect)

参数FileFilter是一个定义过滤条件(如*.txt,*.xla)的字符串;

FilterIndx指定默认文件过滤条件的序号,从1到FileFilter中的过滤器数目;

Title指定对话框的标题;

ButtonText只用于Macintosh系统;

MultiSelect是一个Boolean值,表示可以多选文件。

下面的例子显示“打开”对话框,并在文件类型下拉框中使用文本文件(*.txt)过滤条件,然后使用消息框显示用户的选择。

DimfileToOpenAsString

fileToOpen=Application.GetOpenFilename("

TextFiles(*.txt),*.txt"

IffileToOpen<

"

Then

Open"

fileToOpen

InputBox方法

就像你估计的,InputBox方法显示一个对话框提示用户输入一个值。

这个方法通过指定期望从用户获取的数据类型允许你有选择性地输入。

InputBox方法语法如下:

InputBox(Prompt,Title,Default,Left,Top,HelpFile,HelpContextID,Type)

其中:

Prompt是显示在对话框中的信息,在这里你可以让用户知道你期望的数据类型。

Title是在对话框顶部显示的标题。

Default是最初显示的默认值。

Left和Top用来指定对话框的位置。

这些值以屏幕的左上角为参考点,单位是磅。

HelpFile和HelpContextID指定一个帮助文件。

如果使用这些参数,在对话框中将包括一个Help按钮。

Type是返回的数据类型,默认值是Text。

允许的数据类型如下表。

ValueType

0公式,以字符串返回,只需要此参数

1数值,你也可以在此包括一个返回一个数值的公式

2文本(字符串)

4逻辑数值(True或False)

8一个单元格引用,Range对象

16一个错误数值,如#N/A

64数值列表

如果Type为8,你必须使用Set语句将结果赋值给一个Range对象,如下例所示

SetmyRange=Application.InputBox(prompt:

="

Sample"

type:

=8)

下面的例子要求用户输入打印活动工作表的份数。

注意Type参数表明此方法要求输入数字。

SubPrintActiveSheet()

DimTotalCopiesAsLong,NumCopiesAsLong

DimsPromptAsString,sTitleAsString

sPrompt="

Howmanycopiesdoyouwant?

sTitl

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2