Excel根据选择的单元格自动计算

2025-09-28 02:28:13

1、电脑上面打开Excel表格,按下【Alt+F11】组合键调出VBA编辑器,或者点击Excel表格上方的【开发工具】,【Visual Basic】。

Excel根据选择的单元格自动计算

2、在VBA编辑器里边的VBA项目下方双击“Sheet1”工作表,在打开的代码窗口里边输入以下程序代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'当工作表上的选定区域发生改变时执行

On Error Resume Next            '忽略运行过程中出现的错误

Dim r, ro, c, co, i, j As Long  '数据类型定义

Set mySheet1 = ThisWorkbook.Worksheets("Sheet1")  '定义工作表

r = Target.Row             '选择的第几行,选择多行时只默认第一行

ro = Target.Rows.Count     '总共选择多少行

c = Target.Column          '选择的第几列,选择多列时只默认第一列

co = Target.Columns.Count  '总共选择多少列

For i = 2 To 1000          '从第2行执行到1000行

  If mySheet1.Cells(i, 6) <> "" And mySheet1.Cells(i, 2) <> "" Then

  '如果两列对应的单元格都不为空白,则执行其计算

   mySheet1.Cells(i, 7) = mySheet1.Cells(i, 6) * mySheet1.Cells(i, 2)

  End If

Next

If ro <= 1000 And co < 50 Then   '选择的范围小于等于1000行,小于50列

  For j = 1 To ro  '从1执行到选择的多少行

    If r > 1 And c > 2 And c < 6 And mySheet1.Cells(r + j - 1, c) <> "" And _

    mySheet1.Cells(r + j - 1, 6) <> "" Then

'如果选择的单元格从第二行开始,且在第3到第5列之间,并且单元格不为空白,则执行计算

'下划线“_”为程序的连接符,毕竟程序语句不想写那么长,所以换行

       mySheet1.Cells(r + j - 1, 7) = mySheet1.Cells(r + j - 1, 6) * _

       mySheet1.Cells(r + j - 1, c)

    End If

  Next

End If

End Sub

Excel根据选择的单元格自动计算

3、程序思路:

(1)选择的单元格是要单独计算,其余的单元格也要计算,而程序的计算顺序是从上往下的,因此,可以先全部计算,之后再单独对选择的单元格进行计算。

(2)写VBA程序的时候,为了防止选择一整行或一整列而出现卡死的现象发生,所以就在选择的范围里边加了个限制的条件。

4、回到Excel表格工作表界面,选择单元格时将会根据选择的单元格进行自动计算。

Excel根据选择的单元格自动计算

Excel根据选择的单元格自动计算

5、选择其他单元格时,它将会按照B列与F列对应的单元格相乘计算。

Excel根据选择的单元格自动计算

6、如果选择的区域里边含有多列时,它将会以选择区域里边的第一列进行计算。

Excel根据选择的单元格自动计算

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