Excel VBA Application 方法属性大全(6)

2019-04-17 15:45

如果为空(”\),则按参数Key指定的键时将不发生任何操作;如果省略该参数,则恢复参数Key指定的键在Excel中的正常操作,同时清除先前使用OnKey方法所做的操作设置。

参数Key可以指定任何与Alt、Ctrl或Shift组合使用的键,还可以指定这些键的任何组合。每一个键可以由一个或多个字符表示,比如”a”表示字符a,”{ENTER}”表示Enter(回车)。若要指定按对应的键(例如Enter或Tab)时的非显示字符,可以使用下表2所列出的代码。表2中的每个代码表示键盘上的一个对应键,按键代码放置在花括号{}中。

表2:OnKey方法的按键代码 按键 Backspace Break Caps Lock Clear Delete或Del 向下箭头 End 代码 {Backspace}或{BS} {BREAK} {CAPSLOCK} {CLEAR} {DELETE}或{DEL} {DOWN} {END} Enter(在数字小键盘中) {ENTER} Enter Esc Help Home Ins 向左箭头 Num Lock Page Down Page Up Return 向右箭头 Scroll Lock Tab 向上箭头 F1到F15 ~(波形符) {ESCAPE}或{ESC} {HELP} {HOME} {INSERT} {LEFT} {NUMLOCK} {PGDN} {PGUP} {RETURN} {RIGHT} {SCROLLLOCK} {TAB} {UP} {F1}到{F15} 还可以指定与Shift和/或Ctrl和/或Alt组合使用的键。若要指定与其他键组合使用的键,可使用下表3。 表3:组合按键代码 要组合的键 在按键代码之前添加 Shift Ctrl Alt +(加号) ^(插入符号) %(百分号) 若要为特定字符指定处理过程(如 +、^、% 等等),可以将此字符用花括号括起。 下面的示例为键序列Ctrl+加号分配“InsertProc”过程,并为键序列Shift+Ctrl+向右键分配“SpecialPrintProc”过程。

Application.OnKey \\

下面的示例将Shift+Ctrl+向右键恢复正常操作。 Application.OnKey \

下面的示例将Shift+Ctrl+向右键键序列设为不发生任何操作。 Application.OnKey \

又如,下面的代码忽略Alt+F4组合键的操作: Application.OnKey \

即按下Alt+F4组合键后,Excel没有任何反应,不执行任何操作。

注意,OnKey方法使用的按键将应用到所有打开的工作簿,且仅在当前的Excel会话期间起作用。

下面的示例代码禁用工作表右键快捷菜单:

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

Cancel = True

MsgBox \对不起!已禁用右键菜单!\End Sub '禁用Shift+{F10}显示快捷菜单 Sub SetupNoShiftF10()

Application.OnKey \End Sub '恢复Shift+F10组合键的功能 Sub TurnOffNoShiftF10() Application.OnKey \End Sub Sub NoShiftF10()

MsgBox \对不起!已禁用右键菜单!\

End Sub ThisCell属性

ThisCell属性返回一个单元格,作为Range对象在此调用用户定义的函数。下面的示例在调用函数时将函数所在单元格的地址通知给用户。

Function UseThisCell() MsgBox \该单元格的地址为: \Application.ThisCell.AddressEnd Function

在用户定义的函数中,用户不能访问Range对象上的属性或方法。当完成了重新计算后,用户可以为今后的使用和执行附加操作而存储Range对象。

WorksheetFunction属性

在Excel中可以直接使用两组内置函数,一组函数是VBA语言的组成部分,另一组函数是Excel工作表函数的子集。可以使用Application对象的WorksheetFunction属性来使用VBA中没有相同功能的工作表函数。

通常,如果一个VBA函数与一个Excel函数有着相同的用途,那么该Excel函数就不能直接用于VBA宏(虽然本文前面介绍过可以使用Evalute方法访问任何Excel函数)。但还有一种特殊的情形,关于Excel的Mod函数。Mod函数不能直接用于VBA,但是VBA提供了相同用途的Mod操作符。下面的代码使用Evaluate方法的简洁格式,运用Excel的Mod函数和Today函数以数字显示星期几:

MsgBox [MOD(TODAY(),7)]

使用VBA的Date函数和Mod操作符,更简单地获得相同的结果: MsgBox Date Mod 7

Excel的Concatenate 函数同样也不能用于VBA,但可以使用连接操作符(&)代替,就像在Excel工作表公式里一样。如果一定要在VBA中使用Concatenate函数,可以编写如下的代码:

Sub ConcatenateExample1() Dim s1 As String, s2 As String s1 = \\

但下面的代码更简单且结果相同:

Sub ConcatenateExample2() Dim s1 As String, s2 As String s1 = \\

VBA函数,例如Date、DateSerial和IsEmpty能够自由地使用,因为它们是<全局>的成员。例如,可以使用下面的代码:

StartDate = DateSerial(1999, 6, 1)

Excel函数,例如VLookup和SUM是WorksheetFuncion对象的方法,可以使用下面的代码:

Total = WorksheetFunction.Sum(Range(\

为了与Excel 5和Excel 95兼容,可以直接使用Application而无需WorksheetFunction: Total = Application.Sum(Range(\在VBE编辑器中,输入下面的代码:

application.WorksheetFunction.

将自动显示出能够在VBA中使用的所有工作表函数列表。 改变光标显示(Cursor属性)

通过Cursor属性来设置光标在Excel界面中的显示形状,可以将其设置为xlIBeam(条状)、xlNorthwestArrow(西北向箭头)、xlWait(等待)、xlDefault(恢复为默认值)。

获取或改变Excel窗口的状态或大小(WindowState属性)

通过WindowState属性来获取或改变Excel窗口的状态,包括xlMaximized(最大化)、xlMinimized(最小化)、xlNormal(正常)。

通过Height属性和Width属性改变或获取Excel主应用程序的高度和宽度。注意,只有当Application.WindowState=xlNormal时,才能改变Height属性和Width属性。

通过UsableHeight属性和UsableWidth属性获取主应用程序窗口中一个窗口可用的最大高度和最大宽度。

获取系统信息

下面的示例程序使用了多个Application对象的属性以获取系统信息: Sub GetSystemInfo()

MsgBox \版本信息为:\ MsgBox \当前允许使用的内存为:\ MsgBox \当前已经使用的内存为:\ MsgBox \可以使用的内存为:\

MsgBox \本机操作系统的名称和版本为:\ MsgBox \本产品所登记的组织名称为:\ MsgBox \当前用户名为:\ MsgBox \当前使用的Excel版本为:\End Sub

自动隐藏公式栏(DisplayFormulaBar属性)

在Excel 2003及以前版本的Excel中,当单元格中输入的数据超过一定数量时,公式栏会自动向下扩展,从而遮盖住了工作表区域。下面的示例代码当单元格中的字符数小于50时,显示公式栏,否则隐藏公式栏。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count > 1 Then ExitSub

If Len(Target.Text) > 50 Or Len(Target.Formula) > 50 Then Application.DisplayFormulaBar = False Else

Application.DisplayFormulaBar = True End If End Sub

当然,上述代码在Excel 2007中仍然有用,但Excel 2007已经改进了公式栏的特性,即使输入大量的数据,也不会遮盖工作表区域。

将Excel全屏显示(DisplayFullScreen属性) Sub testFullScreen()

MsgBox \运行后将Excel的显示模式设置为全屏幕\ Application.DisplayFullScreen = True MsgBox \恢复原来的状态\

Application.DisplayFullScreen = False End Sub

获取Excel启动文件夹的路径(StartupPath属性) Sub ExcelStartFolder()

MsgBox \的启动文件夹的路径为:\Application.StartupPath End Sub

检测Excel的版本(Version属性) Sub CheckVersion()

If Val(Application.Version) < 12 Then

MsgBox \只在Excel 2007或更高版本中有效\ ThisWorkbook.Close End If End Sub

Application对象的Version属性返回一个代表当前运行的Excel的版本的字符串,使用Val函数返回该字符串内的数值。该属性通常用于判断当前Excel是否满足程序运行要求。

打开最近使用过的文档(RecentFiles属性) Sub OpenRecentFiles()

MsgBox \显示最近使用过的第三个文件的名称,并打开该文件\

MsgBox \最近使用过的第三个文件的名称为:\Application.RecentFiles(3).Open End Sub

文件对话框操作(FileDialog属性) Sub UseFileDialogOpen()

Dim lngCount As Long '开启\打开文件\对话框 With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = True

.Show '显示所选的每个文件的路径 For lngCount = 1 To .SelectedItems.Count MsgBox .SelectedItems(lngCount)


Excel VBA Application 方法属性大全(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:五笔常见最难打的字

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: