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

2025-09-29 11:31:22

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的工作表事件进行数据的自动计算

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢