数据被粘贴VBA时自动运行macros

我有一个工作表,在前三列(A,B,C)中存储数据。 这些值在macros中使用。

我想知道在将数据粘贴到这些列之后如何自动运行这个macros。 我几乎可以肯定,我将使用工作表 – 更改模块,但对于代码我很无能。

提前致谢。

一个简单的实现:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1:C" & ThisWorkbook.Worksheets(1).UsedRange.Rows.Count)) Is Nothing Then 'Call your Macro to do stuff End If End Sub 

相交检查目标是否在您想要监视的范围内。 因此,如果C中的列发生更改,则Intersect将返回Nothing,并且不会调用您的macros。 请记住,Worksheet_Change事件触发任何更改,甚至双击单元格。 如果你在这个工作表中所做的只是复制和粘贴数据,然后运行你的macros,这应该没问题,但是如果你进一步操纵你的数据,你可能不得不看更复杂的解决scheme。 示例包括镜像工作表并比较工作表变更事件前/后的情况。 您可以在这里阅读更多: 通过编辑检测单元格值是否被实际更改