У меня есть пользовательская форма с несколькими полями со списком, которая заполнена именами, которые считываются с листа в Excel. После того, как пользователь выбирает имя из каждого поля со списком и нажимает кнопку отправки, он открывает Outlook, чтобы отправить электронное письмо этим людям. Код работает нормально, но мне нужна помощь в переформатировании имен.
Как я могу переформатировать имя и фамилию в действительный адрес электронной почты? Имя и фамилия читаются из одной ячейки.
Пример:
Джон Смит (что выбрано в поле со списком)
преобразовать в -> john.smith@xzy.com
.To = comboA.Value & "," & _
(Это строка, которая работает с готовым именем, но не форматируется в электронное письмо)
Кроме того, если кто-то не выбирает имя из поля со списком, возможно ли игнорировать эту строку и не пытаться вводить что-либо в Outlook?
Dim WS As Worksheet
Dim LastRow As Long
Dim bColumn As Range
Dim cColumn As Range
Dim dColumn As Range
Dim eColumn As Range
Dim fColumn As Range
Dim gColumn As Range
Dim hColumn As Range
Dim iColumn As Range
Dim jColumn As Range
Dim kColumn As Range
Set WS = ActiveWorkbook.Worksheets("UserData")
With WS
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
For Each bColumn In .Range("B3:B" & LastRow)
If bColumn.Value <> "" Then
Me.comboA.AddItem bColumn.Value
End If
Next
End With
With WS
LastRow = .Cells(.Rows.Count, "C").End(xlUp).Row
For Each cColumn In .Range("C3:C" & LastRow)
If cColumn.Value <> "" Then
Me.comboB.AddItem cColumn.Value
End If
Next
End With
Dim objOutlook As Object
Dim objEmail As Object
Set objOutlook = CreateObject("Outlook.Application")
objOutlook.Session.Logon
Set objEmail = objOutlook.CreateItem(0)
objEmail.Display
On Error Resume Next
With objEmail
.To = comboA.Value & ", " & _
comboB.Value & ", " & _
comboC.Value & ", " & _
comboD.Value & ", " & _
comboE.Value & ", " & _
comboF.Value & ", " & _
comboG.Value
End With