Как объединить две подпрограммы с Private Sub Worksheet_Change на листе - PullRequest
1 голос
/ 17 апреля 2019

доброе утро Мне нужно объединить два Private Sub Worksheet_Change (ByVal Target As Range) Я новичок в коде Excel VBA, как я могу это сделать? Код ниже.

1)

Option Explicit
Const strAFM As String = "D3:D1000"
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Rng As Range, AFM As String, rngTomi As Range
    Set Rng = Range(strAFM)
    Set rngTomi = Intersect(Target, Rng)
    If rngTomi Is Nothing Then Exit Sub

    If rngTomi.Count <> 1 Then
        rngTomi.ClearContents
        Exit Sub
    End If
    If Trim(Target.Value) = "" Then Exit Sub

    AFM = Right("000000000" & Target.Value, 9)

    If isAFM(AFM) = False Then
        MsgBox "no afm"
        Target.Activate
        Exit Sub
    End If
End Sub

2)

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub

    Dim Rng As Range
    Set Rng = Me.Range("ColTarget")

    If Intersect(Target, Rng) Is Nothing Then Exit Sub

    ResizeTbl
End Sub

1 Ответ

0 голосов
/ 18 апреля 2019

Попробуйте:

Option Explicit
Const strAFM As String = "D3:D1000"
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Rng As Range, AFM As String, rngTomi As Range

    If Not Target.Count > 1 Then
        Set Rng = Me.Range("ColTarget")
        If Not Intersect(Target, Rng) Is Nothing Then ResizeTbl
    End If

    Set Rng = Range(strAFM)
    Set rngTomi = Intersect(Target, Rng)
    If Not rngTomi Is Nothing Then
        If rngTomi.Count <> 1 Then
            Application.EnableEvents = False
                rngTomi.ClearContents
            Application.EnableEvents = False
            Exit Sub
        End If

    If Trim(Target.Value) = "" Then Exit Sub

    AFM = Right("000000000" & Target.Value, 9)

    If isAFM(AFM) = False Then
        MsgBox "no afm"
        Target.Activate
        Exit Sub
    End If
    End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...