Excel宏组合了两个Worksheet_Change代码

时间:2017-09-04 13:16:53

标签: excel vba excel-vba

我有两个工作的Worksheet_Change代码,我想在同一张纸上使用它们。当我单独使用它们时它们都可以工作,但是当我一起使用它们时却没有。我尝试粘贴两个不同的代码,但我检测到一个模糊的名称错误。我也尝试过使用elseif,但是没有一个能够工作。 这两个代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("O:O"), Target) Is Nothing Then
        Cells(Target.Row, 17).Value = Date
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Column = 15 Then
        Range("P" & Target.Row).Value = Target.Value + Range("P" & Target.Row).Value
        Application.EnableEvents = False
        Target.Value = ""
        Application.EnableEvents = True
    End If
End Sub

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

你可以将两个workshett Change事件放在同一个子

Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Range("O:O"), Target) Is Nothing Then
            Cells(Target.Row, 17).Value = Date
        End If

        If Target.Column = 15 Then
            Range("P" & Target.Row).Value = Target.Value + Range("P" & Target.Row).Value
            Application.EnableEvents = False
            Target.Value = ""
            Application.EnableEvents = True
        End If
    End Sub

答案 1 :(得分:0)

尝试这样......

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Not Intersect(Range("O:O"), Target) Is Nothing Then
        Application.EnableEvents = False
        Cells(Target.Row, 17).Value = Date
        Range("P" & Target.Row).Value = Target.Value + Range("P" & Target.Row).Value
        Target.Value = ""
        Application.EnableEvents = True
    End If
End Sub