在 Microsoft Excel 中您可以运行 Microsoft Visual Basic 应用程序
Sub 过程和 Microsoft Excel 版本 4.0 宏从 Visual Basic 过程通过使用
Application.Run 和
Application.ExecuteExcel4Macro 方法。您也可以运行 Visual Basic
Sub 过程,与
调用 方法或通过单独一行上输入过程的名称。
本文说明了几种方法可用来从 Visual Basic 在 Excel 中运行的
Sub 过程和 Microsoft Excel 版本 4.0 宏。
Microsoft 提供的编程示例只,用于说明不附带任何明示或暗示保证,其中包括但不是限于对适销性和/或针对特定用途的适用性的暗示的担保。本文假定您熟悉所演示的编程语言和工具用于创建和调试过程。Microsoft 支持专业人员可以帮助解释某个特定过程的功能,但他们不会修改这些示例以提供额外的功能或构建过程来满足您特定需要。
如果有限编程体验您可能需要联系 Microsoft 认证合作伙伴或 Microsoft 咨询服务。有关更多的信息请访问以下 Microsoft 网站:
Microsoft 认证合作伙伴-
https://partner.microsoft.com/global/30000104
(https://partner.microsoft.com/global/30000104)
Microsoft 咨询服务-
http://support.microsoft.com/gp/advisoryservice
(http://support.microsoft.com/gp/advisoryservice)
有关可用的支持选项和有关如何与 Microsoft 联系的详细信息,请访问下面的 Microsoft 网站:
http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS
(http://support.microsoft.com/default.aspx?scid=fh;en-us;cntactms)
方法 1: Application.Run
您可以使用
Application.Run 方法来从 Visual Basic 中的其他过程运行 Visual Basic
Sub 过程或 Microsoft Excel 版本 4.0 宏。
Application.Run 方法需要一个命名的参数: 宏或要运行的
Sub 过程的名称。(但是,其他可选参数也可能会包含)。此名称可以是文本字符串 (例如对于"TestXLM"),或者也可以是等同于为宏的名称的变量。
例 1: 文本字符串
若要能够调用 TestXLM Microsoft Excel 版本 4.0 宏,您可以使用该文本字符串:
Application.Run "TestXLM"
例 2: 变量
如果您将变量设置为"TestXLM"的"MacroToRun"可以使用此变量:
Application.Run MacroToRun
方法 2: Application.ExecuteExcel4Macro
您还可以使用
Application.ExecuteExcel4Macro 方法运行 Microsoft Excel 版本 4.0 宏或其他 Visual Basic
Sub 过程,但语法稍有不同。要运行宏或
Sub 过程使用
Application.ExecuteExcel4Macro,还必须包括 Microsoft Excel 版本 4.0
运行 () 函数作为在下面的示例:
Application.ExecuteExcel4Macro "RUN(""TestXLM"")"
Application.ExecuteExcel4Macro "RUN(""" & MacroToRun & """)"
时,您使用
Application.ExecuteExcel4Macro,您必须使用引号括起来。例如对于要使用
运行 () 函数必须将该参数的名称用引号引起来:
的整个字符串然后必须括在引号中。当您将引号添加到字符串的外部时,您必须添加一个其他引号旁边在字符串中每个引号:
Application.ExecuteExcel4Macro 命令的使用在
运行 () 函数的内部变量是比等效
Application.Run 方法更复杂。为被正确计算命令必须作为输入宏字符串:
"RUN(""" & MacroToRun & """)"
这个命令计算为
RUN("" & MacroToRun & "")
这是一个有效的 Microsoft Excel 版本 4.0 宏命令。
方法 3: 调用方法
该
调用 的方法可用于运行 Visual Basic
Sub 过程,但不是 Microsoft Excel 版本 4.0 宏。例如对于进行
Sub 过程
TestVBSub 可以使用此方法:
您不能将一个变量的名称传递给
调用 方法。例如对于如果您将变量设置为"TestVBSub"的"SubToRun"您不能运行
TestVBSub Sub 过程如下:
方法 4: 运行仅使用一个 Sub 过程及其名称
您可以通过在行上输入其名称,由其自身运行 Visual Basic
Sub 过程。例如对于您是否要运行
TestVBSub 子例程您
Sub 过程应输入
在单独的行上。在执行该子例程中的行时将运行
TestVBSub 子例程。
方法 5: 示例 Visual Basic 过程
若要进行六个说明最常用的方法可用于从其他的 vba 过程运行 Visual Basic
Sub 过程或 Microsoft Excel 版本 4.0 宏的
Sub 过程,请按照下列步骤操作:
- 在一个新的工作簿中插入 Microsoft Excel 4.0 宏表名为 Macro1 和 Visual Basic 模块名模块 1。
注意: 若要在 Excel 中插入一个 Visual Basic 模块,请按 ALT + F11 可激活 Visual Basic 编辑器。在 插入 菜单上,然后,单击 模块。 - 在宏工作表上输入下面的宏:
A1: TestXLM
A2: =ALERT("TestXLM works!")
A3: =RETURN()
该宏将显示一个警告框。 - 在宏工作表上选择单元格 A1。
- 在 插入 菜单上指向 名称,然后单击 定义。
- 验证在 定义名称 对话框中会显示下列信息:
- 该名称在当前工作簿中 框中包含名称 TestXLM。
- 引用中的收件人 框中包含该引用 = Macro1! $ A $ 1。
- 在 宏 下选中 命令 选项。
当设置是否为上面指定,单击 确定 以定义宏的名称。 - 在模块 1,输入下面的 Sub 过程:
Option Explicit
'The TestVBSub subroutine displays a message box: it is the Visual
'Basic equivalent of the TestXLM macro shown above.
Sub TestVBSub()
MsgBox "TestVBSub works!" 'Displays a message box.
End Sub
'The Test1 Sub procedure makes use of the Application.Run method with
'hard-coded macro/subroutine names.
Sub Test1()
Application.Run "TestVBSub"
Application.Run "TestXLM"
End Sub
'The Test2 Sub procedure makes use of the Application.Run method with
'variable macro/Sub procedure names.
Sub Test2()
Dim SubToRun As String, MacroToRun As String
SubToRun = "TestVBSub"
MacroToRun = "TestXLM"
Application.Run SubToRun
Application.Run MacroToRun
End Sub
'The Test3 Sub procedure makes use of the
'Application.ExecuteExcel4Macro
'method with hard-coded macro/Sub procedure names.
Sub Test3()
'Note the extra quotation marks which are contained within the
'RUN statements. These are required in order for the command to
'evaluate properly.
Application.ExecuteExcel4Macro "RUN(""TestVBSub"")"
Application.ExecuteExcel4Macro "RUN(""TestXLM"")"
End Sub
'The Test4 Sub procedure makes use of the
'Application.ExecuteExcel4Macro
'method with variable macro/Sub procedure names.
Sub Test4()
Dim SubToRun As String, MacroToRun As String
SubToRun = "TestVBSub"
MacroToRun = "TestXLM"
'Note the extra quotation marks which are contained within the
'RUN statements. These are required in order for the command to
'evaluate properly.
Application.ExecuteExcel4Macro "RUN(""" & SubToRun & """)"
Application.ExecuteExcel4Macro "RUN(""" & MacroToRun & """)"
End Sub
'The Test5 Sub procedure uses the Call method with hard-coded
'Sub procedure names.
Sub Test5()
Call TestVBSub
End Sub
'The Test6 Sub procedure runs the TestVBSub subroutine because its
'name is entered on a line by itself.
Sub Test6()
TestVBSub
End Sub
当您运行 Test1、 Test2、 Test3,或 Test4 时,两个警报框将显示消息"TestVBSub 工作 !"和"TestXLM 工作 !当您运行 Test5 或 Test6 时,一个警告框将显示消息"TestVBSub 工作 !"
文章编号: 213837 - 最后修改: 2007年1月24日 - 修订: 3.7
这篇文章中的信息适用于:
- Microsoft Excel 2000 标准版
- Microsoft Excel 2002 标准版
| kbmt kbmacro kbdtacode kbhowto kbprogramming KB213837 KbMtzh |
机器翻译注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版:
213837
(http://support.microsoft.com/kb/213837/en-us/
)
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。