David想知道在添加或删除行时,是否有任何方式可以更改宏中的单元格引用,类似于公式对此类更改的响应方式?

当您引用宏中的单元格时(例如使用Range(“ B6”)),VBA将该引用视为绝对引用,这意味着它不会更改。

即使您添加或删除影响B6中的信息现在所在位置的单元格,宏引用也将保持不变。

解决此问题的方法是不直接引用宏中的单元格。而是依靠命名范围。在Excel中,为单元格B6定义一个名称(例如“ MyData”),然后在您的宏的引用中使用该名称,如Range(“ MyData”)一样。这种方法之所以有效,是因为VBA查找名称以确定要引用的单元格,并且Excel确保在添加或删除单元格时命名的范围引用保持最新。

注意:

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

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

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