Excel VBA 编程基础 -- 单元格(二)
- 2026-11-05 03:06:40
Excel VBA 编程基础 -- 单元格(二)单元格的引用方式 所谓“引用”单元格,就是在表达式(譬如在单元格中输入公式时)中指定某个(或某些,下同)单元格,以便为这个单元格赋值,或者读取这个单元格的值,再或者指定这个单元格的格式。 例如,在单元格 C3 中输入公式 =A1 * 2,此时单元格 C3 的值依赖于单元格 A1 的值,如果 A1 的值为 3,那么,在输入上述内容后,C3 将自动获得值 6。 在这个例子中,表达式 =A1 * 2 含有对单元格 A1 的引用,这个表达式的意思是:将 A1 的值乘以 2,将所得结果赋给 C3 单元格。 需要注意的是,表达式 =A1 * 2 何时有意义,何时无意义。如果 A1 的值为空(即没有赋任何值),那么 C3 的值将是 0,也就是说,Excel 将空值作为零值(0)对待。如果 A1 的值是任何有意义的数值(整数、浮点数、正数、负数),C3 也将得到有意义的结果。但如果 A1 的值不是数值(空值除外),则 C3 将得不到有意义的结果,因此会显示 #VALUE! 这样的错误标志,表示得不到有意义的值,并且旁边会显示一个黄色三角。鼠标放在三角形上,将显示错误信息,如图1: 
图1 单元格错误 由这个错误信息,我们就知道,单元格 A1 的数据类型(准确地说,应该是 A1 中的值的数据类型,以后不再作这样啰嗦的区分)与 A1 所参与的运算(乘法)不匹配,也就是说,对于乘法运算来说,A1 的数据类型不对(因为 A1 的值 ABC 是字符串,而乘法运算要求是数值)。 刚才跑题了,再回到我们的单元格引用上来。 上面我们在 C3 单元格输入了表达式 =A1 * 2,下面我们在 C5 单元格输入表达式 =$A$1 * 2。这两个表达式内容一样,只是在引用 A1 单元格时的表示方法不一样: 相对引用和绝对引用的区别 下面我们通过例子来说明这一点。如图2: 
图2 相对引用和绝对引用 上图中,C3 的公式中“相对地”引用了 A1,而 C5 的公式中则是“绝对地”引用了 A1。对于 A1 的值 3.6,C3 和 C5 的值都是 7.2。这样看来,似乎相对引用和绝对引用没什么区别! 别急,请继续往下看。 下面,我们把 A1:C5 所表示的区域拷贝到 E1:G5,如图3: 
图3 区域拷贝 仍然看不出有什么不同! 现在,把 A1 的值修改为 4.8,如图4: 
图4 修改 A1 的值 现在,区别显现了! 上图中,C3、C5、G5 的值一样,说明它们引用的都是同一个单元格 A1。而 G3 的值与上述单元格的值都不同,那么它引用的是哪个单元格呢?见图5: 
图5 G3 单元格 由图可见,G3 单元格引用的居然是 E1 单元格!而 G5 单元格又是什么呢?见图6: 
图6 G5 单元格 由图可见,G5 单元格引用的是 A1,这就是为什么它与 C3、C5 的值相同的原因。 这就是相对引用和绝对引用的区别: 让我们再增加两个概念:引用单元格和被引用单元格,以便更方便地说明相对引用和绝对引用: 所谓“绝对引用”,是指在对某个(或某些)单元格的引用中,被引用单元格并不随引用单元格的位置而变化,总是指同一个(或同一些)单元格的引用。这就是“绝对”一词的含义:被引用单元格“绝对”不变。 所谓“相对引用”,是指在对某个(或某些)单元格的引用中,被引用单元格会随着引用单元格位置的变化而变化,但被引用单元格与引用单元格的相对距离保持不变。这就是“相对”一词的含义。 就我们的例子来说,C3 “相对地”引用了 A1,那么,C3 相对 A1 的距离是什么呢?因为工作表是一个二维表格,因此所谓“距离”就涉及到两个指标:行距和列距。我们用 R[y] 表示行距,用 C[x] 表示列距。[] 里面的内容 x、y 就是距离。因为 A = C - 2,1 = 3 - 2,因此 C3 相对 A1 的距离就是 R[-2]C[-2]。所以,在将 C3 拷贝到 G3 时,要维持距离不变,则相对于 C3 对 A1 的引用,G3 + R[-2]C[-2] 就是 E1。因此,将 C3 拷贝到 G3 时,相对于 C3 对 A1 的引用,G3 所引用的就是 E1。 因为 C5 “绝对地”引用了 A1,因此当将 C5 拷贝到 G5 时,根据绝对引用时,被引用单元格“绝对”不变的意义,G5 所引用的仍然是 A1,所以 G5 的值与 C5 的值相同。 有了上面的说明,图4 的意义就清楚了。 (未完待续) 相关阅读 Excel VBA 编程基础 -- 单元格

A1:这种“列名行号”的直接表示法,是对单元格 A1 的相对引用。 $A$1:这种“$列名$行号”的表示法,是对单元格 A1 的绝对引用。





相对引用:在拷贝时,被引用单元格的位置会发生变化,但距离不变。 绝对引用:在拷贝时,被引用单元格的位置不变,但距离会变。
被引用单元格:被其他单元格所引用的单元格,如A1 是被引用单元格:因为 A1 在 C3 和 C5 的表达式中被引用了。 引用单元格:引用其他单元格的单元格,C3、C5 都是引用单元格,因为C3 和 C5 的表达式中引用了 A1 单元格。
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。