粘贴值后,工作表更改事件不起作用

时间:2012-06-13 17:46:56

标签: excel-vba vba excel

我在Worksheet_Change

中有代码

如果更新了第9列,则第8列将通过乘以col 9和col 11自动填充。

但是当用户在列中粘贴值时,更改事件无法正常工作。只有Col 8中的第一个单元格才会更新。

我怎样才能克服这个?

1 个答案:

答案 0 :(得分:1)

试试这个

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Whoa
    Application.EnableEvents = False

    If Target.Columns.Count > 1 Then GoTo LetsContinue

    If Not Intersect(Target, Columns(9)) Is Nothing Then
        Dim aCell As Range

        For Each aCell In Target
            aCell.Offset(, -1).Value = aCell.Value * aCell.Offset(, 2)
        Next
    End If

LetsContinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume LetsContinue
End Sub