宏是扩展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目标文件完成。如果您需要解决此问题的方法,则可能对Chip Pearson网站上的以下页面感兴趣:

http://www.cpearson.com/excel/ShellAndWait.aspx

注意:

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

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

本技巧(9843)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: