查看Excel的“名称框”,你会看到相对引用模式下的单元格地址类似于A1这种方式,它用字母标识单元格的列,用数字标识单元格的行;绝对引用模式下的单元格地址类似于R1C1这种方式,它用R表示行,C表示列,数字作为行或列的下标,从1开始,如R4C3表示C4。它们在Excel2003和Excel2007中的使用方式和位置都相同,为了以示区别,下图我分别给出了在Excel2007和Excel2003中的截图。
有一点需要说明,那就是在同一时刻只能使用两种单元格引用方式中的一种,通过菜单切换引用方式时你可能不会觉得有什么问题,关键是在通过VBA代码进行单元格引用时,你必须记住当前是在哪种引用方式下操作单元格,否则Excel将抛出异常!当需要进行单元格引用方式切换时,你可以通过上面的那行代码进行切换,然后还可以再切换回来。
在相对引用模式下,你需要通过改变字母和数字来引用不同的单元格;但在绝对引用模式下,你只需要改变数字就可以引用另外的单元格,如你想在第四行第一列处引用第一行第一列的单元格,引用方式为R[-3]C1,通过改变数字来达到模拟单元格的相对引用。感觉有点乱吧?其实一点都不难,这只是两种单元格引用方式而已,没有什么很特别的,只是我们经常都使用A1这种方式来引用单元格,对R1C1这种方式用得少而已,习惯就好了。
单元格的命名
Excel的“名称框”除了显示当前引用模式下单元格的地址外,还允许我们给单元格或单元格区域进行命名。选中一个单元格或单元格区域,在地址栏中直接输入一个名字,就完成了命名操作。在Excel2003中,我们还可以通过“插入-名称-定义”,在弹出的对话框中对单元格或单元格区域进行命名,Excel2007中该功能在“公式”选项卡中可以找到。经过命名后的单元格或单元格区域可以在代码中直接使用,而不必再去记住它们的相对或绝对地址了。这一点非常好,尤其是在表格非常发杂的情况下。
例如在A1单元格中包含了一个公式,用来计算美元和人民币的汇率换算,这个公式有可能在表格的很多地方被使用到,如果直接使用A1的地址来进行引用,你必须记住A1是用来计算汇率的,如果表格的很多地方都存在着公式,那你还需要记住很多的地址来表示各种不同的公式,而且当单元格引用模式发生变化时,你还要使用不同的方式来进行引用,这就很麻烦了。直接给这些包含公式的单元格命名,在