VBA笑场:单元格引用写起来太费劲,试试”R1C1″样式

场景:周一早上,小毕正对着电脑发愁,艾迷糊顶着黑眼圈冲进办公室

小毕:迷糊,你怎么累成这样?

艾迷糊:(瘫在椅子上)周末帮女朋友做表格,用威叔教的A1样式……结果她表格有500行!我写公式写到凌晨三点!

老威:(端着新泡的龙井茶出现)嗯?A1样式的确 直观,但对付规律性操作,就像用勺子挖运河——工具没错,但效率不高啊。

小毕:威叔!还有更高效的方法?

老威:今天给你们介绍A1样式的”表哥”——R1C1样式。(在白板上画起来)

艾迷糊:R1C1?听起来像机器人名字!

老威:这么说吧,如果A1样式是通俗唱法,那R1C1就是美声唱法——更专业,更适合批量操作。

来看对比:(敲代码)

' A1样式 - "通俗唱法"
Range("D2") = "=B2+C2"
Range("D3") = "=B3+C3"
Range("D4") = "=B4+C4"

' R1C1样式 - "美声唱法"
Range("D2:D4").FormulaR1C1 = "=RC[-2]+RC[-1]"

小毕:哇!三行变一行!但是这个RC[-2]是什么暗号?

老威:(推了推眼镜)想象一下寻宝游戏:

– R = Row(行),C = Column(列)

– RC[-2] 意思是:”从我目前的位置,向左走2列”

– RC[1] 意思是:”从我目前的位置,向右走1列”

艾迷糊:(挠头)这不就跟玩跳格子一样吗?前进后退的?

老威:没错!来实战一下:(打开工资表)

Sub R1C1实战()
' 给D列统一添加公式:基本工资+奖金
Range("D2:D100").FormulaR1C1 = "=RC[-2]+RC[-1]"

' 在E列添加判断:如果总额>5000显示"优秀"
Range("E2:E100").FormulaR1C1 = "=IF(RC[-1]>5000,""优秀"",""普通"")"
End Sub

小毕:(震惊)我的天!我平时要下拉填充一百行的公式,这一句代码就搞定了?

艾迷糊:(突然跳起来)我懂了!这就像玩”贪吃蛇”——往前吃,往后吃,全看指令!

老威:(哭笑不得)虽然比喻很迷糊……但意思对了。再来看个高级用法:

Sub 智能填充()
' 不管数据有多少行,自动检测并填充
Dim lastRow As Long
lastRow = Cells(Rows.Count, 2).End(xlUp).Row
Range("D2:D" & lastRow).FormulaR1C1 = "=RC[-2]*RC[-1]"
End Sub

小毕:这个太强了!再也不用担心数据增减了!

艾迷糊:(幻想状)那我是不是可以写个万能公式,后来所有表格都能一键搞定……

经理:(突然出现)艾迷糊!上季度销售报表的提成计算好了吗?各部门催着呢!

艾迷糊:(慌慌张张)经理,那个……有五百多行数据……

老威:(微笑接过话)用R1C1样式,30秒就够了。(快速敲代码)

Sub 计算提成()
Columns("E:E").Insert '插入提成列
Range("E1:E1000").FormulaR1C1 = "=RC[-2]*RC[-1]*0.1" '销量*单价*10%提成
End Sub

经理:(看呆)这……这就完了?我平时要算一小时的!

艾迷糊:(得意)经理,这就是科技的力量!

老威:(语重心长)记住,R1C1的精髓在于相对位置思维。就像告知你:”从你目前站的位置,往北走三步,往东走两步挖宝藏”——

小毕:我清楚了!不管我在哪个单元格执行,它都知道相对位置!

老威:没错。最后送你们个”寻宝口诀”:

– RC 就是”我在这里”

– R[1]C[1] 就是”往下1行,往右1列”

– RC[-1] 就是”往左1列”

– R5C3 就是绝对位置”第5行第3列”

艾迷糊:(模仿武功招式)北冥神功!吸星大法!我吸我吸……

经理:(眼睛发亮)老威,你这个方法能不能给全公司培训一下?太高效了!

老威:(喝口茶)培训可以,不过……(看了眼艾迷糊)有些人可能要先从”幼儿园级别”的相对位置概念学起。

小毕:威叔,我越来越觉得VBA像一门武功了——A1样式是外家功夫,直观刚猛;R1C1是内家心法,灵活高效!

老威:(欣慰点头)有悟性!内外兼修,方能成为真正的Excel高手。

知识点总结:

1. R1C1核心:使用相对位置引用,R代表行,C代表列

2. 相对引用:RC[-1](向左1列),R[1]C(向下1行)

3. 绝对引用:R1C1(第1行第1列)

4. 优势:批量填充公式时极其高效,自动适应数据范围

5. 应用场景:规律性计算、动态范围填充、模板制作

如果觉得有用,别忘了 点赞 + 收藏,关注我,获取更多Excel VBA高效编程技巧!

(图片由AI生成)

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容