ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:42.70KB ,
资源ID:2194663      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2194663.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Excel VBA Application 方法属性大全.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Excel VBA Application 方法属性大全.docx

1、Excel VBA Application 方法属性大全Application Excel 方法属性Application对象是Excel对象模型中最高层级的对象,代表Excel应用程序自身,也包含组成工作簿的许多部分,包括工作簿、工作表、单元格集合以及它们包含的数据。Application对象包含:应用程序设置和选项,许多选项与“选项”对话框中的选项相同。返回顶级对象的方法,例如ActiveCell、ActiveSheet,等等。本文使用VBA代码示例简要介绍了与Application对象相关的经常使用的对象、方法和属性,其中一些成员能够改变用户与Excel应用程序交互的方式,还能够改变应用

2、程序的外观和式样。熟悉Application对象能够让您扩展和调整Excel的功能,以满足自已的需求。本文主要介绍的内容如下:从Application对象中引用对象Application对象相关的集合 AddIns集合 Columns集合和Rows集合 Dialogs集合 Sheets集合Application对象相关的属性 ActiveCell属性 ActiveChart属性 ActiveSheet属性 ActiveWindow属性 ActiveWorkbook属性 RangeSelection属性 ScreenUpdating属性 Selection属性 StatusBar属性 ThisW

3、orkbook属性Application对象相关的方法 FindFile方法和Dialogs集合 GetOpenFilename方法 GetSaveAsFilename方法 InputBox方法 Run方法Application对象相关的事件 激活Application事件监视使用Application对象执行其它任务 删除工作表而显示提示信息(DisplayAlerts属性) 无须提示用户而保存工作表(DisplayAlerts属性) 使用SendKeys方法发送信息到记事本 安排宏在指定的时间和间隔运行(OnTime方法)Application对象的其它一些属性和方法 Caller属性 C

4、utCopyMode属性 Evaluate方法 OnKey方法 ThisCell属性 WorksheetFunction属性 改变光标显示(Cursor属性) 获取或改变Excel窗口的状态或大小(WindowState属性) 获取系统信息 自动隐藏公式栏(DisplayFormulaBar属性) 将Excel全屏显示(DisplayFullScreen属性) 获取Excel启动文件夹的路径(StartupPath属性) 检测Excel的版本(Version属性) 打开最近使用过的文档(RecentFiles属性) 文件对话框操作(FileDialog属性) 改变Excel工作簿的名称(Cap

5、tion属性) 调用Windows的计算器(ActivateMicrosoftApp方法) 暂时停止宏运行(Wait方法) 重新计算工作簿(Calculate方法) 控制函数重新计算(Volatile方法) 获取重叠区域(Intersect方法) 获取路径分隔符(PathSeparator属性) 快速移至指定位置(Goto方法) 关闭Excel(Quit方法)从Application对象中引用对象使用Application属性返回Application对象。在引用应用程序之后,要访问Application对象下面的对象,则依次下移对象模型层级。例如,下面的代码设置第一个工作簿的第一个工作表中的

6、第一个单元格的值为20:Application.Workbooks(1).Worksheets(1).Cells(1, 1) = 20要引用该单元格,上述代码以Application对象开始,移至第一个工作簿,然后到第一个工作表,最后到达单元格。下面的示例代码在另一个应用程序中创建一个Excel工作簿,然后打开该工作簿:Set xl = CreateObject(Excel.Sheet)xl.Application.Workbooks.Open newbook.xls可以使用许多属性和方法返回最常用的用户界面对象,例如活动工作表(ActiveSheet属性),而无须Application对象限

7、定。例如,下面的代码:Application.ActiveSheet.Name = Monthly Sales可以替换为:ActiveSheet.Name = Monthly Sales然而,在使用简短的引用时必须小心,必须已经选择了正确的对象。如果已经使用诸如Worksheet对象的Activate方法选择了合适的工作簿和工作表,那么能够使用下面的代码引用第一个单元格:Cells(1, 1) = 20有一些实例必须使用Application限定引用。例如,OnTime方法、应用程序窗口的Width和Height属性。通常,处理Excel窗口外观的属性或者影响应用程序全部行为的属性需要Appl

8、ication限定,例如DisplayFormulaBar属性用于显示或隐藏公式栏。Calculation方法也需要限定。Application对象相关的集合本节介绍与Application对象相关的一些集合。AddIns集合AddIns集合代表当前在Excel中装载的所有加载项。就像遍历任何其它集合一样,可以列出应用程序中关于加载项的不同类型的信息。下面的示例列出当前在Excel中装载的加载项的路径和名称:Sub ListAddIns() Dim myAddin As AddIn For Each myAddin In AddIns MsgBox myAddin.FullNameNextEn

9、d SubColumns集合和Rows集合这些集合代表当前工作簿中的列和行,可以使用它们分别选择指定的列和行。Application.Columns(4).Select上述语句选择D列,就像在工作表中单击该列的标题一样。Application.Rows(5).Select上述语句选择第5行,就像在工作表中单击该行的行边一样。Dialogs集合Dialogs集合由应用程序中所有的对话框组成。本文后面将详细介绍该集合。Sheets集合Sheets对象返回指定工作簿或活动工作簿中所有工作表的集合。Sheets集合包含Chart对象或Worksheet对象。下面的示例打印活动工作簿中所有工作表:App

10、lication.Sheets.PrintOut下面的示例遍历工作簿中所有的工作表,并打印包含有数据的工作表:For iSheet = 1 To Application.Sheets.Count If Not IsEmpty(Application.Sheets(iSheet).UsedRange) Then Application.Sheets(iSheet).PrintOut copies:=1 End If Next iSheetApplication对象相关的属性在Excel 2007应用程序中,有大量的属性用来访问不同的对象。这里,只探讨经常使用的属性。 ActiveCell Act

11、iveChart ActiveSheet ActiveWindow ActiveWorkbook RangeSelection ScreenUpdating Selection StatusBar ThisWorkbookActiveCell属性Application对象的ActiveCell属性返回Range对象,代表活动工作簿的活动工作表中的活动单元格。如果没有指定对象限定,那么该属性返回活动窗口中的活动单元格。注意区分活动单元格和单元格选区。活动单元格是当前选区里的单个单元格,选区可能包含很多单元格,但仅有一个单元格是活动单元格。下面的示例改变活动单元格的字体格式。注意确保正在处理正确的

12、单元格,Worksheets集合的Activate方法使工作表Sheet1为活动工作表。Worksheets(Sheet1).Activate With ActiveCell.Font .Bold = True .Italic = True End WithActiveChart属性ActiveChart属性返回Chart对象,代表活动图表,无论该图表是嵌入式图表还是图表工作表。当嵌入式图表被选择或者被激活时,该图表是活动图表。下面的示例使用ActiveChart属性在工作表Monthly Sales中添加一个三维柱形图:Sub AddChart() Charts.Add With Activ

13、eChart .ChartType = xl3DColumn .SetSourceData Source:=Sheets(Sheet1).Range(B3:H15) .Location Where:=xlLocationAsObject, Name:=Monthly Sales .HasTitle = True .ChartTitle.Characters.Text = Monthly Sales by Category End WithEnd SubActiveSheet属性ActiveSheet属性返回Worksheet对象,代表当前所选择的工作表(在顶部的工作表)。在一个工作簿中仅仅有一

14、个工作表是活动工作表。下面的示例显示活动工作表的名字:MsgBox 活动工作表的名字是 & ActiveSheet.Name下面的示例由用户指定复制活动工作表的次数并复制活动工作表,将复制的工作表放置到工作表Sheet1的前面:Sub CopyActiveSheet()Dim x As Integer, numtimes As Integer x = InputBox(请输入复制活动工作表的次数) For numtimes = 1 To x 在工作表Sheet1的前面放置工作表副本 ActiveWorkbook.ActiveSheet.Copy Before:=ActiveWorkbook.S

15、heets(Sheet1) NextEnd SubActiveWindow属性ActiveWindow属性返回Window对象,代表活动窗口(在顶部的窗口)。下面的示例显示活动窗口的名称(Caption属性):MsgBox 活动窗口的名称是 & ActiveWindow.CaptionCaption属性返回活动窗口的名称,允许使用名称而不是索引号来更清楚地访问该窗口。下面的示例选择并打印工作表,然后对第二个工作表重复这一过程:Sub PrintWorksheet() Application.ScreenUpdating = False Sheets(Sales).Select ActiveWi

16、ndow.SelectedSheets.PrintOut Copies:=1, Collate:=True Sheets(Expenses).Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=TrueEnd Sub在该示例中,您可能奇怪为什么将ScreenUpdating属性设置为False。当Excel执行一系列操作任务时,屏幕被更新并且被刷新许多次,这导致屏幕闪烁。设置ScreenUpdating属性为False消除这些闪烁。此外,因为计算机处理器无须为刷新屏幕而暂停,这能使大的应用程序运行得更快。ActiveW

17、orkbook属性ActiveWorkbook属性返回Workbook对象,代表活动窗口中的工作簿。下面的示例显示活动工作簿的名称:MsgBox 活动工作簿的名称是 & ActiveWorkbook.Name下面的示例设置计算模式为手动,然后遍历并计算活动工作簿中的每个工作表:Sub CalcBook()Dim wks As Worksheet Application.Calculate = xlManual For Each wks In ActiveWorkbook.Worksheets wks.Calculate Next Set wks = NothingEnd SubRangeSel

18、ection属性RangeSelection属性返回Range对象,代表在指定的窗口的工作表中所选择的单元格,即使是工作表中激活或选择的图形对象。下面的示例显示活动窗口的工作表中所选择的单元格的地址:MsgBox Application.ActiveWindow.RangeSelection.Address当选择单元格区域时,RangeSelection属性和Selection对象代表相同的单元格区域。当选择图形时,RangeSelection属性返回以前的单元格选区。关于Selection属性的更多介绍参见下节。下面的示例显示单元格中头三个字符:Range(A1).SelectMsgBox

19、Left(ActiveWindow.RangeSelection, 3)下面的示例显示单元格名称的头三个字符:Range(A1).SelectMsgBox Left(ActiveWindow.RangeSelection.Name.Name, 3)命令RangeSelection.Name.Name返回单元格名称。ScreenUpdating属性ScreenUpdating属性用于控制屏幕刷新,可将其值设置为True或False。通常,Excel开启了屏幕刷新(即该属性值为True),因此在代码执行时,Excel会随着代码的操作而不断更新屏幕显示,这样在运行处理涉及到多个工作表或单元格中的大量

20、数据的代码(选择或激活对象)时,屏幕会不停闪烁,并且会占用CPU的处理时间,从而降低程序的运行速度。可以在程序代码的开始部分设置ScreenUpdating属性为False,即Application.ScreenUpdating=False,以关闭屏幕刷新,这样不仅能够使代码运行更快,而且使得界面对用户更为友好。在程序结束前,将该属性设置为True,以恢复Excel对屏幕更新的控制。然而,在宏运行的过程中,如果需要显示用户窗体或者内置对话框,建议先恢复屏幕刷新,否则拖动用户窗体时,会在屏幕上产生橡皮擦的效果。当然,在显示该对象后,可以重新关闭屏幕刷新。Selection属性Selection属

21、性返回活动窗口中所选择的对象。例如,对于单元格,该属性返回Range对象;对于图表,该属性返回Chart对象。如果使用该属性时没有限定引用,则等价于Application.Selection。下面的示例清除工作表Sheet1中的选区(假设选区是单元格区域):Worksheets(Sheet1).ActivateSelection.Clear下面的示例在变量NumRows中存储所选行的总数:numrows = 0For Each area In Selection.Areas numrows = numrows + area.Rows.CountNext area下面的示例统计所选区域中单元格的

22、数量,并在消息框中显示结果:Dim cell As ObjectDim count As Integer count = 0 For Each cell In Selection count = count + 1 Next cell MsgBox count & 项被选择下面的示例确保在输入数据之前选择的是工作表: If TypeName(ActiveSheet) Worksheet Or TypeName(Selection) Range Then MsgBox 本程序仅用于单元格区域, vbCritical Exit Sub End If Range(A1).Value = 20Stat

23、usBar属性StatusBar属性返回或设置状态栏中的文本。该属性允许改变显示在Excel窗口底部的状态栏中的信息,这特别有助于使用户了解需要花时间完成的操作处理的进度。因此,状态栏是一种告知用户当前程序信息的极好方式,并且状态栏不会干扰用户,也易被开发者利用。如果Excel控制状态栏,则StatusBar属性返回False。此外,要恢复缺省的状态栏文本,只需设置该属性为False,即使隐藏了状态栏。例如,下面的示例将现在正在处理的文件赋值给状态栏:Sub test()Dim FileNum As Integer FileNum = 0 For Each file In Files Appl

24、ication.StatusBar = 现在正在处理文件 & FileNum FileNum = FileNum + 1 NextEnd Sub然后,当程序结束时,使用下面的语句将状态栏恢复为正常:Application.StatusBar = False这是通知Excel并清空状态栏的最简单的方式。除非重新启动Excel,否则状态栏中会一直保持着使用Application.StatusBar所显示的文本,因此应该在合适的地方使用Application.StatusBar = False语句,尤其是应该考虑发生错误时如何恢复状态栏。另外,在使用状态栏时,需要选择一个合适的更新间隔,使之既不会影

25、响程序性能又能为用户提供有用的信息。可以创建自已的过程来使用StatusBar属性,以显示宏或其它过程的进度:Sub ShowStatusBarProgress()Dim i As LongDim pctDone As DoubleDim numSquares As Long Const MAXSQR As Long = 15 For i = 1 To 30 pctDone = i / 30 numSquares = pctDone * MAXSQR Application.StatusBar = Application.WorksheetFunction.Rept(Chr(60), numS

26、quares) Application.Wait Now + TimeSerial(0, 0, 1) Next i Application.StatusBar = FalseEnd Sub本示例随着程序的运行逐渐显示由常量MAXSQR定义的15个小于符号,小于符号使用ASC字符60生成。本示例没有指示过程执行多长时间,只是显示了执行的进度。Wait方法摸拟宏占用的执行时间。要在VBA代码中使用状态栏,首先确定在用户界面中是否显示了状态栏(因为用户极有可能关闭了显示状态栏的选项),并且在状态栏使用完毕后,应将其恢复到用户原先的设置,因此在程序开始前,将状态栏的信息保存到一个变量中:bStatus

27、BarInfo=Application.DisplayStatusBar然后,将DisplayStatusBar属性设置为True,以确保显示状态栏。在程序结束前,将状态栏恢复到原先的设置:Application.DisplayStatusBar=bStatusBarInfoThisWorkbook属性ThisWorkbook属性返回Workbook对象,代表当前正运行的宏所在的工作簿。该属性允许加载项引用包含代码的工作簿。ActiveWorkbook属性在该实例中不会工作,因为活动工作簿可能不是包含加载项代码的工作簿。换句话说,ActiveWorkbook属性不会返回加载项工作簿,它返回调用

28、加载项的工作簿。如果从VB代码创建了一个加载项,应该使用ThisWorkbook属性限定必须在编译到该加载项的工作簿中运行的语句。下面的示例关闭包含示例代码的工作簿,如果修改了该工作簿,则不会保存修改。ThisWorkbook.Close SaveChanges:=False下面的示例遍历每个打开的工作簿并将其关闭,然后关闭包含该代码的工作簿。Sub CloseOpenWrkBks()Dim wrkb As Workbook For Each wbk In Application.Workbooks If wrkb.Name ThisWorkbook.Name Then wbk.Close T

29、rue End If Nextwbk ThisWorkbook.Close TrueEnd SubApplication对象相关的方法下面探讨Application对象经常使用的一些方法。FindFile方法和Dialogs集合与GetOpenFilename方法不同,FileFind方法显示“打开”对话框并允许用户打开文件。如果成功打开文件,那么该方法返回True;如果用户取消了该对话框,那么该方法返回False。下面的示例显示一条消息,告诉用户打开一个指定的文件,然后显示“打开”对话框。如果用户不能够打开该文件,则显示一条消息。Sub OpenFile1()Dim bSuccess As

30、Boolean MsgBox 请定位到MonthlySales.xls文件. bSuccess = Application.FindFile If Not bSuccess Then MsgBox 该文件没有打开. End IfEnd Sub也可以使用Dialogs集合打开特定的对话框来完成相同的操作。使用Dialogs集合的优势之一是使用Show方法,可以传递参数修改内置对话框的缺省行为。例如,xlDialogOpen的参数为:file_text、update_links、read_only、format、prot_pwd、write_res_pwd、ignore_rorec、file_or

31、igin、custom_delimit、add_logical、editable、file_access、notify_logical、converter。注:要找到特定对话框的参数,在Excel帮助的“内置对话框参数列表”中查找相应的对话框常量。下面的示例显示在文件名框中带有Book1.xlsm的“打开”对话框,允许用户显示缺省文件而不必选择文件。Sub OpenFile2() Application.Dialogs(XlBuiltInDialog.xlDialogOpen).Show arg1:=Book1.xlsmEnd SubDialogs集合的优点在于,可以使用它来显示任何的Excel对话框(大约有250个)。通过下述步骤可以找到对话框

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

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