利用excel中vba的工作表事件进行数据的自动计算

 时间:2026-02-14 18:02:49

1、例如,在工作表的A列有一些不规律的数据混合运算,我们需要将运算结果计算出来并且放置在B列。

通常我们需要一个一个在A列中将数据复制下来,然后在B列中录入等号,再粘贴A列数据,就能完成计算工作,但是,当A列数据量大至几百几千甚至更多时,这种方法是不可取。

这时,我们用触发工作表事件的vba代码来完成就比较简便了。

利用excel中vba的工作表事件进行数据的自动计算

2、既然我们要用vba代码的方法解决这个问题,我们首先就要调出vba的代码窗口。

点击【开发工具】选项卡下的【visual  basic】,就调出了相关工作表的【microsoft visual basic for application】的窗口,点击【视图】/【工程资源管理器】、【代码窗口】,就调出了vba代码编辑窗口和工程资源管理器的窗口(工程--VBAProject)。

利用excel中vba的工作表事件进行数据的自动计算

3、点击【工程--VBAProject】下方【Microsoft  Exeel对象】下我们要计算数据所在的工作表,此例中是名称为【sheet1】的工作表,然后点击右侧代码窗口对象框内下拉箭头,注意选择【worksheet】,右侧框内就会自动调出【selectionchange】(也可以点击右侧框内下拉箭头调出selection change)。

这时,在代码区,就会自动出现:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

利用excel中vba的工作表事件进行数据的自动计算

利用excel中vba的工作表事件进行数据的自动计算

4、将代码添加中间内容成为下列代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim rs

rs = Application.CountA(Columns(1))

If Target.Address = Range("a1:a" & rs).Address Then

For i = 2 To rs

Cells(i, 2) = "=" & Cells(i, 1)

Next

End If

End Sub

利用excel中vba的工作表事件进行数据的自动计算

5、好了,见证奇迹的时刻到了。

本例中我们要计算到A10单元格,只要我们选择区域【A1:A10】,结果就会自动计算出来并放置在B列中了。

注意,一定要选择【A1:A10】,而不要选择【A2:A10】或者别的区域。因为我们上述代码是【If Target.Address = Range("a1:a" & rs).Address Then】后面执行计算的。

利用excel中vba的工作表事件进行数据的自动计算

6、不仅如此,我们的代码还能动态自动计算呢。

我们在A10下方单元格中添加任意多的数据算式,为演示的方便,本例中我们添加了3个至A13单元格。

利用excel中vba的工作表事件进行数据的自动计算

7、添加后,本例中我们要计算到A13单元格,只要我们选择区域【A1:A13】,结果就会自动计算出来并放置在B列中了。

同理:一定要选择【A1:A13】,而不要选择【A2:A13】或者别的区域。

怎么样,你学会了吗?请动手试一试吧。

利用excel中vba的工作表事件进行数据的自动计算

  • 如何用VBA删除工作表
  • EXCEL VBA 给单元格添加超链接
  • excel vba行列选择
  • excel使用vba将公式转换为公式值的方法
  • Excel vba批量提取文件名+修改文件名!
  • 热门搜索
    马牌轮胎怎么样 宫外孕是怎么引起的 睾酮低怎么办 卸妆水怎么用 电子表怎么调时间 作文怎么写 婚礼通知朋友圈怎么写 微信夜间模式怎么设置 麻将怎么玩 西兰花怎么炒