威廉有两个工作簿,每个工作簿都包含宏。即使宏不同,也可以使用相同的键盘快捷键来调用它们。当只打开一个工作簿时,快捷方式将很好用。当两个工作簿同时打开时,William永远不知道确切会运行什么。他想知道Excel是否有一种方法可以独立对待快捷方式,以便如果两个工作簿都打开,键盘快捷方式将和谐地工作。

简短的答案是,如果不对宏本身进行一些更改,就无法实现这一目标。快捷键是“全局”

到正在运行的应用程序的实例(在本例中为Excel)。打开工作簿时,它们的快捷方式将添加到内部表中,该表充当所有快捷方式及其指定运行的宏的索引。

该索引似乎按工作簿名称的字母顺序排序。当您使用快捷键时,Excel会查看索引并在索引中选择第一个匹配的快捷方式。同样,如果您有使用内置快捷方式之一的快捷方式,则创建的宏将始终在内置快捷方式之前运行。如果宏具有相同的名称,则运行第一个打开的宏。

由于Excel维护的索引表是由应用程序实例创建的,因此可以通过确保在每个工作簿的自己的Excel实例中打开每个工作簿来避免冲突。不要使用“打开”对话框加载第二个工作簿。而是双击Windows中的工作簿图标。

如果您不记得要以这种方式打开工作簿,则唯一的选择是开始对宏进行更改。简单的更改是修改快捷键,使它们不相同。您可以通过在每个宏的开头添加一些代码来维护相同的快捷键。让每个宏检查活动工作簿的名称。如果名称与该宏的预期名称匹配,则代码可以继续执行。如果不匹配,则代码可以激活另一个工作簿并直接在该工作簿中运行宏。

注意:

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

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

本技巧(2872)适用于Microsoft Excel 97、2000、2002和2003。