多语言展示
当前在线:743今日阅读:167今日分享:16

用excel中vba代码实现自动统计

日常工作中,经常要在excel表格中进行统计工作,例如,月末根据货品盘点表和库存表,统计未盘点货品,年末根据库存商品和销售商品表格,统计滞销商品等等,为我们的数据分析奠定基础,这种统计性质的工作重复繁杂,时刻考验着有关工作人员的耐心和细心,工作量大且容易出错,其实类似这样的工作表对比的工作,用excel中vba代码进行自动统计,能够大幅的提高工作效率,实现办公的自动化。下面,我们以excel2010为例,来分享一下自动统计的方法:
工具/原料

excel2010工作表

方法/步骤
1

如下图所示:A列是仓库库存商品编码,B列是已经盘点过的商品编码,我们需要统计出尚未盘点的商品编码并将其放置在C列。首先我们来分析解决这个问题的方法是;先取A列A2单元格,然后分别取B列中的B2到B9单元格中的值跟A2单元格中的值对比,如果有相同的,说明已经盘点过,再取A列中的A3单元格,然后分别取B列中的B2到B9单元格中的值跟A3单元格中的值对比,如果有相同的,说明已经盘点过,继续取值对比,如果没有相同的,说明没有盘点过,将其写入C列单元格中。

2

根据上述分析,我们应该用vba中的for   next循环语句解决问题.点击【开发工具】(如果电脑选项卡中没有【开发工具】,参看下方⑥调出【开发工具】选项卡)选项卡下的【visual   basic】,点击【视图】下的【代码窗口】,在代码窗口录入代码:Sub 统计未盘点货品()Dim r As Range, rr As Range, k As IntegerFor Each r In Sheet2.Range('a2:a19')a = r.ValueFor Each rr In Sheet2.Range('b2:b9')b = rr.ValueIf r = rr Then GoTo lineNext rrk = k + 1Sheet2.Cells(k + 1, 3) = rline:Next rEnd Sub

3

点击如下图所示的vba的运行按钮,或者点击【宏】,在【宏名】右侧选择框内选择【Sub 统计未盘点货品】,点击【执行】按钮。

4

可以看到,尚未盘点的货品编号已经统计出来并被写入C列了。我们可以验证一下是正确的。如果经常执行此代码,大家还可以插入一个快捷按钮来执行。点击【插入】/【形状】,选择一个自己喜欢的形状,例如我们选择一个矩形。

5

鼠标放在矩形上,右键单击,点击【指定宏】,将宏名【Sub 统计未盘点货品】指定给这个矩形,点击【确定】。点击矩形即可运行此代码了,清除列数据,点击矩形,可以看出,未盘点数据已经统计出来并被写入C列了。

6

如果上述步骤中我们的excel2010中【开发工具】没有调出来,可以通过下述步骤调出:点击excel左上角的【文件】/【选项】,在【excel选项】中点击【自定义功能区】,将【主选项卡】下的【开发工具】前面的勾勾勾选上。点击【确定】即可。

推荐信息