总是听到或看到有人问,编程好学吗?如何入门?多久能学会?它能做些什么?怎么写代码呀?执行过程中出问题了谁能帮帮我...如果你也有类似的问题那就赶快关注我的公众号,一起学起来吧!
在和大家一起学习的过程中,观察到一个小现象想和大家探讨一下:我们虽然分析了很多案例,但很多小伙伴独立修改或调整代码时,还是会感到吃力
这提醒我们,比起直接使用现成的代码,尝试去理解每一行的逻辑并亲自动手实现,会是更有效的学习路径
接下来就通过案例,教大家如何编写和剪辑代码
1 基本需求
工作表Sheet8中有一个表格,表格内容和格式如下图所示,现在要计算C列的数据。计算逻辑:C列每个单元格的值等于B列从第2行到当前行的数据之和,即C2=B2、C3=B2+B3、C4=B2+B3+B4......

为了尽快实现功能、解决办公需求,我们优先保证开发速度。像工作表、列号,数据量等这些参数,可使用固定值,让程序能先跑起来,后续再根据使用情况灵活调整。参考代码如下
Sub CumulativeSum()Dim ws As WorksheetDim i As LongDim cumulative As Double'设置工作表Set ws = ThisWorkbook.Sheets("Sheet8") '修改为你的工作表名称'初始化累加变量cumulative = 0'数据从第2行开始循环,到15行For i = 2 To 15'累加B列当前行数据cumulative = cumulative + ws.Cells(i, "B").Value'将累加结果写入C列ws.Cells(i, "C").Value = cumulativeNext iMsgBox "累计求和完成!", vbInformationEnd Sub
是不是很简单?立刻就解决了燃眉之急

解决了问题,有了空闲之后,我们再返回审核这段代码:是要频繁使用呢还是一锤子生意
一段代码只有被频繁使用时,才具备优化的价值,也才会因此产生新的、更高的要求。例如要是B列数据行数不是15,而变成了19、31、100......频繁地修改代码,是不可取的
For i = 2 To 15那么,我们的核心目标就出现了:把“15”替换成变量
2 功能改进
一提到“变量”,就要遵循先定义后使用的规则,因此待解决的问题如下:
变量的定义:变量的数据类型与i保持一致,假如变量名为lastRow,则定义为:
Dim lastRow As Long变量的取值:动态获取B列的数据条数,并赋值给lastRow变量
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row对这行代码不熟悉的小伙伴可以点击链接查看:【 VBA 编程】3分钟掌握End属性:轻松定位数据边界
改进后的代码如下:
Sub CumulativeSum_update()Dim ws As WorksheetDim lastRow As LongDim i As LongDim cumulative As Double'设置工作表Set ws = ThisWorkbook.Sheets("Sheet8") '修改为你的工作表名称'获取B列最后一行数据lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row'初始化累加变量cumulative = 0'从第2行开始循环For i = 2 To lastRow'累加B列当前行数据cumulative = cumulative + ws.Cells(i, "B").Value'将累加结果写入C列ws.Cells(i, "C").Value = cumulativeNext iMsgBox "累计求和完成!", vbInformationEnd Sub
3 结尾
好了,今天的编程知识到此结束了,明天我们继续优化代码,想学习的小伙伴可持续关注
本公众号一直在不间断地分享免费的编程案例和实用技巧。无论您是用来提升自动化办公效率还是想提升自我,请关注我的公众号,解锁更多的编程知识