分享

Excel – 选中算式列,右边列自动显示计算结果

 我的人生宝库 2019-08-13

有很多人问这个问题,如果在一列中写算式,如何在旁边列自动计算出结果?

有很多人会建议用 evaluate 函数来实现,我很早以前也写过这种方法,详情请参见

Excel 函数(一) – 用 evaluate 函数自动计算

但是,这种方式仍然要在结果列输入自定义的函数,并没有实现广大网友们要的真正自动化。

要完全自动化,必须使用 VBA,因为只有 VBA 才能根据事件来触发结果。

案例:

如下表所示,A 列是随机列出的一些算式。要求:只要选中 A 列的任意非空区域,就会在 B 列的对应区域自动得出结果。

Excel – 选中算式列,右边列自动显示计算结果

这是最终完成效果:

Excel – 选中算式列,右边列自动显示计算结果

解决方案:

1. 按 Alt+F11 打开 VBE,输入以下代码:

Sub Worksheet_SelectionChange(ByVal Target As Range) Dim i, n, r, c As Integer, calculator '声明变量 calculator = Selection 'calculator为选中的单元格区域 r = Application.WorksheetFunction.Max(Selection.Cells(1).Row, '2') '获取选中区域的第一个行号,如果行号小于2,则从2开始 n = Selection.Cells(Selection.Cells.Count).Row 'n为选中区域的最后一个行号 c = Selection.Cells.Column '获取选中区域的列号 For i = r To n '历遍选中的区域 If Cells(i, c) <> '' Then '如果选中的单元格不为空 Cells(i, c + 1) = '=' & Cells(i, c) '在右边列出计算结果 End If Next End SubSub 清空() Dim j, k As Integer k = Sheet1.Range('b' & Sheet1.Rows.Count).End(xlUp).Row '找出B列非空的最后一个行号 For j = k To 2 Step -1 '从最后一个非空行向上历遍至第2行 Sheet1.Range('B' & j).Clear '清空B列除B1之外的所有单元格 Next End Sub

Excel – 选中算式列,右边列自动显示计算结果

2. 保存后返回 Excel,选择菜单栏的“开发工具”-->“插入”-->“按钮”

Excel – 选中算式列,右边列自动显示计算结果

3. 在弹出的指定宏对话框中选择刚才设置的“清空”作为宏 --> 确定

Excel – 选中算式列,右边列自动显示计算结果

4. 将默认的按钮名称更改为“清空”

Excel – 选中算式列,右边列自动显示计算结果

5. 现在就已经完成了,这是演示效果:

Excel – 选中算式列,右边列自动显示计算结果

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多