Run 方法 运行一个宏或者调用一个函数。 该方法可用于运行用 Visual Basic 或 Microsoft Excel 宏语言编写的宏, 语法: Run(Macro, Arg1, Arg2, Arg3, Arg4, Arg5,Arg6, Arg7, Arg8, Arg9, _ Macro要运行的宏名字(过程名)。 它可以是具有宏名称的字符串、表示函数所在位置的 Range 对象, 这里以运行VBA宏(跨工作簿调用)为例子讲解 宏名称有两种形式: 形式1:工作簿名!模块名.过程名 被调用的过程名在其所在的工程内,名称不是唯一的 也就是在不同的模块内有相同的过程名时, 那么在调用时需要加上所在模块的模块名字。 形式2:工作簿名!过程名 被调用的过程名在其所在的工程内,名字是唯一的。 另外,调用加载宏中的过程时可以不用加工作簿名,直接指定过程名即可。 Run 过程名这种形式调用时,先会搜索本工作簿是否有指定的过程, 所以大家在写过程时,同一个工程内尽是不要有两个或多个同名的过程(事件是个例外)。 如果使用字符串,将在当前工作表的上下文中对该字符串求值。 Arg1-Arg30 可选 Variant 应传递给函数的参数。 返回值:Variant 说明: 此方法不可使用命名参数,参数必须通过位置进行传递。 Run 方法返回被调用的宏返回的任何值。 如果将对象作为参数传递给宏,该对象将转换为相应的值(通过对该对象应用 Value 属性)。 示例1: 准备工作:新建两个工作簿(假设分别为工作簿1,工作簿2) 在工作簿1中添加一标准模块,复制以下代码: Sub test() Application.Run '工作簿2!模块1.test1' '两个标准模块中均有test1过程,所以在调用时要指定模块名 Application.Run '工作簿2!模块2.test1' '模块2的test1过程有两个可选参数 Application.Run '工作簿2!模块2.test1', '测试调用模块2的test1过程', _ 'Application.run方法演示' MsgBox '6*9=' & Application.Run('工作簿2!test2',6, 9) 'test2过程名在工作簿2中具有唯一性,所以不需要加上模块名 '另外,由于test2是个函数,有返回值,可以用在表达式中。 End Sub
在模块1中复制如下代码: Sub test1() MsgBox '模块1' End Sub
Sub test1(Optional strPrompt As String ='测试显示内容', _ MsgBox prompt:=strPrompt, Buttons:=vbInformation + vbOKOnly,Title:=strTitle End Sub test2 = a * b End Function 准备工作完成后运行工作簿1中的test过程。
将击键发送给活动应用程序。 语法: SendKeys(Keys, Wait) Keys 必选 Variant 要以文本形式发送给应用程序的键或组合键。 Wait 可选,如果为 True,则 MicrosoftExcel 会等到处理完按键后将控件返回给宏; 说明: 本方法将击键放到键盘缓冲区。某些情况下,在调用要使用击键的方法之前必须先调用此方法。 Keys 参数可指定任何单个键或与 Alt、Ctrl 或 Shift 的组合键(或者这些键的组合)。 若要指定那些没有屏幕回显该字符的键(例如,Enter 或 Tab),请使用下表所列的代码来表示相应的键。 BACKSPACE {BACKSPACE} 或 {BS} Break {BREAK} Caps Lock {CAPSLOCK} Clear {CLEAR} Delete 或 Del {DELETE} 或 {DEL} 向下键 {DOWN} End {END} Enter(数字小键盘) {ENTER} Enter ~(波形符) Esc {ESCAPE} 或 {ESC} Help {HELP} Home {HOME} Ins {INSERT} 向左键 {LEFT} Num Lock {NUMLOCK} PageDown {PGDN} PageUp {PGUP} Return {RETURN} 向右键 {RIGHT} Scroll Lock {SCROLLLOCK} Tab {TAB} 向上键 {UP} F1 到 F15 {F1} 到 {F15} 还可指定与 Shift 和/或 Ctrl 和/或 Alt 组合使用的键。 要组合的键在键代码之前添加 Shift +(加号) Ctrl ^(插入符号) Alt %(百分号) 示例:来自校长的公式引用转换代码。 Sub changeyinyong() Dim mrg As Range If TypeName(Selection) = 'Range'Then For Each mrg In Selection SendKeys '{F2}' '按F2键进入编辑状态 SendKeys '+{home}' '按shift+home组合键全选公式部分 SendKeys '{F4}' '按f4键转换 SendKeys '{enter}' '跳出单元格编辑模式 Next mrg MsgBox '单元格工作引用切换完成' End If End Sub Volatile 方法 用于将用户自定义函数标记为易失性函数,无论何时在工作表的任意单元格中进行计算时, 语法: Volatile(Volatile) Volatile 可选 Variant 如果为 True,则将函数标记为易失性函数。 如果为 False,则将函数标记为非易失性函数。 默认值为 True 示例: Function mytime() |
|
来自: fzchenwl > 《excel精英培训》