宏是一种扩展程序(如Excel)功能的绝妙方法。但是,您可能希望通过从宏执行DOS批处理文件来进一步扩展该功能。 Excel允许您通过使用Shell命令来执行此操作。该命令的常规语法如下:

dRetVal = Shell("myfile.bat", mode)

在引号内,您可以放置​​要执行的文件的完整路径名和文件名。在某些系统上,如果在文件规范中使用路径名,则可能会遇到问题。 (如果您具有复杂的路径名或路径名包含空格,这似乎会使人头疼。)如果遇到此问题,只需在Shell之前使用ChDir命令即可更改Excel使用的目录。然后,您可以仅使用文件名执行Shell。

模式指示器仅告诉Excel如何打开窗口以显示文件。模式指示器可以是以下任意一种:

Value

Variable Nam

Meaning

0

vbHide

Window is hidden and has focus.

1

vbNormalFocus

Window is the normal size and has focus.

2

vbMinimizedFocus

Window is minimized and has focus.

3

vbMaximizedFocus

Window is maximized and has focus.

4

vbNormalNoFocus

Window is normal size, but doesn’t have

focus.

6

vbMinimizedNoFocus

Window is minimized, but doesn’t have

focus.

Shell命令返回一个值,该值指示您执行的文件的程序ID,或者为零。如果返回零,则执行文件时出错。

您应该记住,使用Shell时,目标文件立即执行,并且独立于Excel执行。这意味着Excel宏中的下一个宏命令将立即执行,而无需等待Shell目标文件完成。不幸的是,没有办法解决此问题。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2506)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: