Como atribuir vários valores de caixa de listagem a uma variável e colocá-los no campo Email “TO”
-
21-12-2019 - |
Pergunta
Estou tentando selecionar vários valores em duas caixas de listagem e atribuir a duas variáveis separadas.Quero então pegar essas variáveis que contêm as seleções e gerar um email com o conteúdo da variável preenchendo o campo "PARA" em um email do Outlook.No momento, estou recebendo um erro em tempo de execução 94 - uso inválido de nulo.
Obrigado por toda sua ajuda!
Dim EAddress, MAddress As String
Public Sub UserForm_Initialize()
Emailfrm.EmpEmaillb.RowSource = "Searched_Employee_Email"
Emailfrm.ManagerEmaillb.RowSource = "Searched_Manager_Email"
End Sub
Public Sub Email_Click()
Dim OLobjMsg, NewMsg As Object
EAddress = Emailfrm.EmpEmaillb.Value
MAddress = Emailfrm.ManagerEmaillb.Value
Set objMsg = CreateObject("Outlook.Application")
objMsg.Session.Logon
Set NewMsg = objMsg.CreateItem(0)
With NewMsg
.To = EAddress & MAddress
.Subject = "BT Employee Database Inquiry Email"
'.Body = "Have a great weekend!"
End With
Unload Me
NewMsg.Display
End Sub
Solução
Supondo que suas caixas de listagem contenham endereços de e-mail válidos, proponho
- definir
ListBox1.MultiSelect = fmMultiSelectMulti
- selecione vários endereços de e-mail usando Ctrl-Click
- concatene todos os endereços selecionados da caixa de listagem em uma única string, por exemplo.
_
Private Sub CommandButton1_Click()
Dim LBCnt As Integer, AllAddr As String
AllAddr = ""
For LBCnt = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(LBCnt) Then
If AllAddr = "" Then
AllAddr = ListBox1.List(LBCnt)
Else
AllAddr = AllAddr & ";" & ListBox1.List(LBCnt)
End If
End If
Next LBCnt
Debug.Print AllAddr
End Sub
- repita para a segunda caixa de listagem ...
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow