Public Sub не передает переменные в другие модули

Jordan спросил: 12 мая 2018 в 05:02 в: vba

Я сделал макрос для отправки электронной почты определенным людям на основе значения ячейки, являющейся X. Проблема состоит в том, что все переменные, которые я объявлял в одном модуле, неправильно передают модулю электронной почты. Ни один из модулей не был сделан вне вкладки "Модули" внутри проекта, поэтому это не должно быть проблемой. Я назвал макросы общедоступными, что, по моему мнению, помешало этой проблеме возникнуть, но похоже, что она не работает. Есть идеи? Прикрепленный является соответствующим кодом.

Public Sub Decision_Making_Parts_Recieved()Worksheets("Parts Email Update").Activatei = 2Do'Exits if part Number is not Present (End of List)
If Cells(i, 2) = "" Then
Exit Do
Else
End If'Determines if Part is Marked To Be Emailed, if so, it Remembers the Contact Name For the Part
If Cells(i, 4) = "x" Or Cells(i, 4) = "X" Then
Current_Contact_Name = Cells(i, 3)
Current_Part_Number = Cells(i, 1)
Else
End If'--------------------------------------------------------------------------------------------
'Activates the Worksheet Containing Variable Email Contact data
Worksheets("Contacts").Activate'Search Contacts sheet for Name and finds Paired Email Address
A = 2
Do'Exits if Name is not Present (End of List)
If Cells(A, 1) = "" Then
Exit Do
Else
End IfIf Cells(A, 1) = Current_Contact_Name Then
Current_Contact_Address = Cells(A, 3)
Current_Contact_Role = Cells(A, 2)
Exit Do
Else
End IfA = A + 1
Loop
'--------------------------------------------------------------------------------------------
'Activates the Worksheet Containing Variable Email Setup data
Worksheets("Email Setup").Activate'Creates Email Based on the Role of the Current Contact
If Current_Contact_Role = Range("B2") Then
Email_Subject = Range("A2") & " " & Current_Part_Number & " " & Range("E2")
Email_Body = Range("A4") & " " & Current_Part_Number & " " & Range("F2")
Else
End IfCall Email_Macro'-----------------------------------------------------------------
'Updates the Parts sheet and Changes "x" (Send) to "S" (Sent)
Worksheets("Parts Email Update").Activate
Cells(i, 4) = "S"'Resets the Variables
Current_Contact_Name = ""
Current_Part_Number = ""
Current_Contact_Address = ""
Current_Contact_Role = ""i = i + 1
LoopEnd Sub

И вот модуль, который я хочу передать,

Public Sub Email_Macro()Dim OutApp As Object
Dim OutMail As Object
Dim strbody As StringSet OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)strbody = Email_Body'& vbNewLine & vbNewLine & _
 '         "This is line 1" & vbNewLine & _
  '        "This is line 2" & vbNewLine & _
   '       "This is line 3" & vbNewLine & _
    '      "This is line 4"On Error Resume Next
With OutMail
'Adresses the Email to the Variable
    .To = Current_Contact_Address
    .CC = ""
    .BCC = ""
    .Subject = Email_Subject
    .Body = strbody
    'You can add a file like this
    '.Attachments.Add ("C:\test.txt")
    .Send   'or use .Display
End With
On Error GoTo 0Set OutMail = Nothing
Set OutApp = Nothing
End Sub

0 ответов