如果您在这里,则可能是您想学习每次在特定工作表中进行更改时如何运行子例程。本文将对此进行精确讲授。因此,让我们开始吧。

工作表更改事件处理程序的语法为:

Private Sub worksheet_change(ByVal Target As Range)

'your code

'

'

End Sub

为了工作,必须在工作表对象中编写此代码,而不是在常规模块中编写。

Private Sub worksheet_change(ByVal Target As Range)

Msgbox "You updated something in this sheet"

End Sub

如果在sheet1上有此代码,并且在sheet1上写入或删除了某些内容,则将弹出消息“您更新了此工作表中的内容”。

在普通模块中不起作用。但是您可以从任何模块调用子例程。我们将在本届会议上做同样的事情。

image

方案:

RunExcel宏,如果在工作表上进行了任何更改

image

因此,假设我们有一个宏,它可以根据某些条件更改单元格的颜色。就像Excel的条件格式一样。唯一的区别是,当我们使用按钮或运行命令运行此VBA代码时,单元格的颜色会发生变化,而值的更改不会发生变化。我们希望在工作表中进行任何更改时都运行宏。在这里VBA活动会有所帮助。现在,我们将使用工作表更改事件。

请按照下列步骤操作:

  • 转到项目资源管理器,然后双击要在其上触发worksheet.change事件的工作表。我想在Sheet2上进行一些更改时触发事件,所以我双击Sheet2。您也可以右键单击并单击查看代码以打开图纸对象的代码编写区域。在代码区域中,编写以下代码行。

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

worksheet_change(目标为范围)是一个保留的子例程,当包含工作表的代码发生更改时运行。

编写此代码时,您将看到对象更改为工作表。请参阅左上方的下拉菜单。在右上角的下拉菜单中,事件为“更改”。

_如果您使用下拉菜单并在左侧下拉菜单中选择工作表,则所有可用事件将显示在右侧下拉菜单中。

无论您选择哪个下拉菜单,该事件的代码都会自动写入。您只需要用自定义子例程填充它。

image_ * Now just put your code in this segment. I want to call my subroutine that is in a module. So I simply call that subroutine in this worksheet event handler. My subroutine isFormatUsingVBA() in Module1

Private Sub worksheet_change(ByVal Target As Range)

Call FormatUsingVBA

End Sub

现在,无论何时我们要在sheet2中进行更改,宏FromatUsingVBA都将运行。

image

是的,当工作表更改其内容时,如何使用工作表更改事件处理程序运行VBA脚本。希望对您有所帮助。如果您对此事件处理程序有任何疑问,请在评论部分中提及它。

相关文章:

使用突出显示当前行和列的简单VBA代码 ** |使用此小VBA代码段突出显示工作表的当前行和列。

`link:/ events-in-vba-the-worksheet-events-excel-vba [Excel VBA中的工作表事件] ** |当您希望在工作表上发生指定事件时运行宏时,工作表事件非常有用。

`link:/ events-in-vba-run-macro-如果有任何更改,在工作表范围内运行[如果在指定范围内在工作表上进行了任何更改,则运行宏] **若要在指定范围内的值更改时运行宏代码,请使用此VBA代码。它检测到在指定范围内所做的任何更改,并将触发该事件。

热门文章:

50 Excel快捷方式以提高生产率更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。

Excel中的VLOOKUP函数在Excel 2016中为COUNTIF使用此惊人的功能对条件进行计数。您无需过滤数据即可计算特定值。

Countif功能对于准备仪表板至关重要。

如何在Excel中使用SUMIF函数这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。