Две разные подфункции для одного листа - как это сделать? - PullRequest
0 голосов
/ 02 апреля 2020

Я новичок здесь на форуме, а также новичок в коде VBA!

У меня есть таблица Excel, где мне нужно сделать несколько выборов в выпадающем списке в Excel, и я сделал это с помощью следующего кода .

Private Sub Worksheet_Change(ByVal Target As Range)

' To make mutliple selections in a Drop Down List in Excel

Dim Oldvalue As String
Dim Newvalue As String

On Error GoTo Exitsub
If Target.Column = 3 Then
    If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
    GoTo Exitsub
    Else: If Target.Value = "" Then GoTo Exitsub Else
        Application.EnableEvents = False
        Newvalue = Target.Value
        Application.Undo
        Oldvalue = Target.Value
        If Oldvalue = "" Then
            Target.Value = Newvalue
        Else
            Target.Value = Oldvalue & ", " & Newvalue
        End If
    End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True


End Sub

Затем мне нужно отправить электронное письмо, когда файл будет сохранен. Что мне нужно сделать, это следующее:

Sub Workbook_AfterSave(ByVal Success As Boolean)

    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "Email Address"
        .CC = ""
        .Subject = "The workbook has been saved"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display

    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing

End Sub

Если я запускаю их отдельно (запуск одного, удаление другого), оба работают. Если я соберу их вместе, сработает только первое.

Может кто-нибудь мне помочь?

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