Excel 当单元格公式结果发生变化时自动运行一个宏

  • Post category:云计算

在Excel中,您可以设置当单元格公式结果发生变化时自动运行一个宏。以下是在Excel中设置此功能的完整攻略:

  1. 打开包宏的Excel工作簿。

  2. 在“开发人员”选项卡中,选择“Visual Basic”。

  3. “Microsoft Visual Basic for Applications”窗中,选择“这个工作簿”。

  4. 在“这个工作簿”窗口中,选择“Workbook”对象。

  5. 在“Workbook”对象中,选择“Worksheet_Change”事件。

  6. 在“Worksheet_Change”事件中,输入要运行的宏代码。

  7. 保存宏代码并关闭“Microsoft Visual Basic for Applications”窗。

现在,当单元格公式结果发生变化时,Excel将自动运行宏。

以下是两个示例:

示例1:在Excel中设置当单元格公式结果发生变化时自动更新图表

假设您有一个名为“销售数据”的Excel工作簿其中包含每个月的销售数据和一个图表。您想要设置当销售数据发生变化,图表自动更新。以下是如何完成此操作的完整攻略:

  1. 打开包含宏的Excel工作簿。

  2. 在“开发人员”选项卡中,选择“Visual Basic”。

  3. 在“Microsoft Visual Basic for Applications”窗口中,选择“这个工作簿”。

  4. 在“这个工作簿”窗口中,选择“Workbook”对象。

  5. 在“Workbook”对象中,选择“Worksheet_Change”事件。

  6. 输入以下宏代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:B12")) Is Nothing Then
        ActiveSheet.ChartObjects("Chart 1").Activate
        ActiveChart.Refresh
    End If
End Sub
  1. 保存宏代码并关闭“Microsoft Visual Basic for Applications”窗口。

现在,当单元格A1:B12中的任何一个单元格发生变化时,Excel将自动更新图表。

示例2:在Excel中设置当单元格公式结果发生变化时自动发送电子邮件

假设您有一个名为“订单记录”的Excel工作簿,其中包含每个订单的订单号和客户名称。您想要设置当订单状态发生变化时,自动发送电子邮件给客户。以下是如何完成此操作的完整攻略:

  1. 打开包含宏的Excel工作簿。

  2. 在“开发人员”选项卡中,选择“Visual Basic”。

  3. 在“Microsoft Visual Basic for Applications”窗口中,选择“这个工作簿”。

  4. 在“这个工作簿”窗口中,选择“Workbook”对象。

  5. 在“Workbook”对象中,选择“Worksheet_Change”事件。

  6. 输入以下宏代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:C100")) Is Nothing Then
        Dim OutApp As Object
        Dim OutMail As Object
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
            .To = Range("B" & Target.Row).Value
            .Subject = "订单状态更新"
            .Body = "尊敬的客户,您的订单状态已更新。"
            .Send
        End With
        Set OutMail = Nothing
        Set OutApp = Nothing
    End If
End Sub
  1. 保存宏代码并关闭“Microsoft Visual Basic for Applications”窗口。

现在,当订单状态发生变化时,Excel将自动发送电子邮件给客户。