场景:一个普通的下午,办公室里,小毕正对着Excel表格抓耳挠腮。

小毕: (一边疯狂敲计算器,一边在Excel里手动输入)“A是65,B是66……天啊,老板为什么要我列出A到Z的ASCII码表,这要搞到猴年马月啊!”
艾迷糊: (滑着椅子凑过来,一脸“我懂完了”的表情)“哎哟,小毕,你这效率不行啊!看我的,我有个祖传的秘诀!”
(艾迷糊抢过键盘,在第一个单元格输入“65”,然后第二个输入“66”,然后……他开始用鼠标拖动填充柄。)
艾迷糊: “看!Excel自动填充!厉害吧!……诶?怎么变成65, 66, 67, 68了?我要的是字母啊!这软件太笨了!”(他懊恼地拍了一下键盘)
老威: (端着一个冒着热气的保温杯,慢悠悠地踱步过来,像一位世外高人)“小艾啊,你这不是软件笨,是你想让马儿跑,却不给马儿吃草。Excel这匹‘马’,你光拖着它,它怎么知道你想让它‘念字母’还是‘数数字’呢?”
小毕: “威哥,救命啊!这手动输入太傻了!”
老威: (放下杯子,微微一笑)“你们知道吗,在计算机的世界里,所有的字符,无论是英文字母、数字还是标点符号,都有一个‘身份证号码’,这就是ASCII码。列如大写字母A,它的身份证就是65。计算机只认数字,不直接认字母。”
艾迷糊: (插嘴)“就像去澡堂子,大家都有个储物柜号码,不叫名字!”
老威: (被这个比喻逗乐了)“对,差不多就是这个意思。小艾这个比喻很生活嘛!目前,问题来了,你怎么能快速地把从65到90这一串‘储物柜号码’(ASCII码)对应的‘客人’(大写字母A-Z)都请出来,整齐地坐在表格里呢?”
小毕: “用函数?但我记不住那么多函数啊……”
老威: “函数像是一把把单一功能的螺丝刀,拧特定的螺丝很好用。但我们目前是要盖一整排房子(生成整个序列),一把螺丝刀就不够看了。这时候,我们需要一个‘全能施工队’,也就是VBA。”
老威: (接过键盘,按下了 `Alt + F11`,打开了VBA编辑器)“看好了,这就是我们召唤施工队的地方。”
(老威开始一边敲代码,一边讲解)

Sub 列出ASCII表()
Dim i As Integer
i = 65
Do While i <= 90
Cells(i - 64, 1) = i
Cells(i - 64, 2) = Chr(i)
i = i + 1
Loop
End Sub
老威: “我们来‘翻译’一下这段‘施工蓝图’:
1. `Dim i As Integer`: 我们先找个包工头,叫‘小i’,告知他,你只负责数整数。
2. `i = 65`: 跟小i说,从65号储物柜开始干。
3. `Do While i <= 90`: 只要号码没到90,就给我一直干下去!(90是Z的号码)
4. `Cells(i – 64, 1) = i`: 在第一列,从第1行开始(i-64就是为了让行号从1开始),写上储物柜号码本身,也就是ASCII码。
5. `Cells(i – 64, 2) = Chr(i)`: 最关键的一步! 在第二列,用 `Chr` 这个神奇的‘召唤术’,把号码(列如65)变成它对应的那个‘客人’(字母A)请出来坐下。
6. `i = i + 1`: 干完一个,包工头小i就去看下一个储物柜(66, 67…)。
7. `Loop`: 循环,就是让上面这套动作重复做。
8. `End Sub`: 活儿干完了,施工队解散!”
(老威按下F5键运行代码。一瞬间,Excel表格的A列和B列就整齐地出现了从65到90的数字和对应的A到Z大写字母。)
小毕: (目瞪口呆)“天啊!太神奇了!这就……完了?我一分钟都不到!”
艾迷糊: (凑近屏幕,难以置信地看了看)“我的妈呀!威哥,你这已经不是施工队了,你这是‘数字变形金刚’啊!我手动输入像在挖运河,您这直接开了艘航空母舰过来!”
老威: (喝了一口茶,深藏功与名)“记住,孩子们。手动处理重复劳动,就像用勺子舀干一个游泳池。而VBA,是让你找到了游泳池的排水阀。编程思维,就是教你如何找到并打开那个阀门。”
小毕: (一脸崇拜)“我懂了!后来再也不傻干了!我要学VBA,学找‘排水阀’!”
艾迷糊: (立刻掏出小本本)“威哥,快!把这个‘变形金刚召唤咒语’教给我!我后来再也不吹牛说我会‘祖传拖拽大法’了!”
如果觉得有用,别忘了 点赞 + 收藏,关注我,获取更多Excel VBA高效编程技巧!
(图片由AI生成)
友友来了想到了我当初学Excel的时候
见解独到👍
感谢