粘贴数据时自动运行宏VBA

时间:2014-06-17 21:08:39

标签: excel vba paste

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

我想知道在将数据粘贴到这些列之后如何自动运行此宏。我几乎可以肯定我将使用Worksheet-Change模块,但至于代码我一无所知。

提前致谢。

1 个答案:

答案 0 :(得分:1)

一个简单的实现:

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,并且您的宏将无法被调用。请记住,Worksheet_Change事件会触发任何更改,甚至双击单元格。如果你在这个工作表中所做的只是复制和粘贴数据然后运行你的宏,这应该没问题,但是如果你进一步操作你的数据,你可能不得不考虑更复杂的解决方案。示例包括镜像您的工作表并在工作表更改事件之前/之后比较它。您可以在此处详细了解:Detect whether cell value was actually changed by editing