tipos - variable texto vba excel
Insertar variable de cadena en el cuerpo del texto (1)
Me gustaría que aparezcan dos variables de cadena en el cuerpo del texto de un correo electrónico. Sé que podemos definir un cuerpo de texto y luego tener ese cuerpo insertado como un todo. Quiero llevarlo más lejos y tener dos elementos insertados en el texto, y no aparecer como VBA, sino como nombres reales.
Las dos variables de cadena son los primeros nombres de los dos primeros destinatarios de un correo electrónico, en este caso nombrados en el VBA como strTO y strTO1. La macro actual crea una respuesta y la inserta en el saludo. También me gustaría que aparezcan en el cuerpo del texto.
Ejemplo: los nombres de los destinatarios son Tom Jones y Severus Snape, strTO y strTO1, respectivamente. Los inserto como se muestra aquí en el texto:
strbody = "<H2><Font Face=calibri>Good Day, </H2>" & strTO & _
"Please review your data below (link) and approve.<br>" & _
"Pleaes contact strTO1 if you have problems.<br>" & _
"<A HREF=""http://www.google.com.htm"">Click Here</A>" & _
"<br><br><B>Thank you</B>"
Lo que quiero que lea como cuando ejecuto la macro (en negrita solo para esta publicación):
Buen día, Tom .
Revise sus datos a continuación (hipervínculo) y apruebe.
Por favor, póngase en contacto con Severus si tiene problemas.
(hipervínculo que dice "Haga clic aquí")
Gracias
Qué está sucediendo ahora (En blanco significa solo un espacio en blanco):
Good Day BLANK ,
Revise sus datos a continuación (hipervínculo que dice "Haga clic aquí") y apruebe.
Póngase en contacto con strTO1 si tiene problemas.
Gracias
Esperaba poder usar etiquetas de algún tipo para insertar el strTO y el strTO1.
A continuación se muestra la macro completa con el código anterior enrollado:
Sub AutoReply()
Dim oMail As MailItem
Dim oReply As MailItem
Dim GreetTime As String
Dim strbody As String
Dim SigString As String
Dim signature As String
Dim strGreetNameAll As String
Dim lastname As String
Dim strgreetname As String
Dim R As Long
Dim text
Dim strTo As String
Dim strTo1 As String
Select Case Application.ActiveWindow.Class
Case olInspector
Set oMail = ActiveInspector.CurrentItem
Case olExplorer
Set oMail = ActiveExplorer.Selection.Item(1)
End Select
strbody = "<H2><Font Face=calibri>Good Day, </H2>" & <strTo> & _
"Please review your data below and approve.<br>" & _
"Please contact strTO1 if you have problems.<br>" &
"<A HREF=""http://www.google.com.htm"">Click Here</A>" & _
"<br><br><B>Thank you</B>"
SigString = Environ("appdata") & _
"/Microsoft/Signatures/90 Days.htm"
If Dir(SigString) <> "" Then
strGreetName1 = Left$(oMail.SenderName, InStr(1, oMail.SenderName, " ") - 1)
lastname = Right(oMail.SenderName, Len(oMail.SenderName) - InStr(1, oMail.SenderName, " "))
If Dir(SigString) <> "" Then
signature = GetBoiler(SigString)
Else
signature = ""
End If
Set oReply = oMail.ReplyAll
Select Case Application.ActiveWindow.Class
Case olInspector
Set oMail = ActiveInspector.CurrentItem
Case olExplorer
Set oMail = ActiveExplorer.Selection.Item(1)
End Select
With oReply
For R = 1 To .recipients.Count
Debug.Print .recipients(R)
strgreetname = Left$(.recipients(R), InStr(1, .recipients(R), " "))
strGreetName2 = Left$(.recipients(2), InStr(1, .recipients(R), " "))
strGreetNameAll = strGreetNameAll & strgreetname
strGreetNameAll1 = strgreetname
strTo = Left(strGreetNameAll, InStr(.recipients(R), " "))
strTo1 = Left(strGreetName2, InStr(1, .recipients(R), " "))
strTo = Left(.recipients(1), InStr(.recipients(1) & " ", " ") - 1)
If .recipients.Count > 1 Then
strTo1 = Left(.recipients(2), InStr(.recipients(2) & " ", " ") - 1)
Else
strTo1 = ""
End If
Next R
Debug.Print strGreetNameAll
strGreetNameAll = Left(strGreetNameAll, Len(strGreetNameAll) - 1)
Debug.Print strGreetNameAll
.HTMLBody = "<Font Face=calibri>Dear " & strTo & " and " & strTo1 & ", " & strbody & "<br>" & signature
.Display
End With
End If
End Sub
Ya casi has llegado. Lo siguiente funcionará:
strbody = "<H2><Font Face=calibri>Good Day, </H2>" & strTo & _
"Please review your data below and approve.<br>" & _
"Please contact " & strTO1 & " if you have problems.<br>" &
"<A HREF=""http://www.google.com.htm"">Click Here</A>" & _
"<br><br><B>Thank you</B>"
strTo1
asegurarse de que strTo
y strTo1
estén definidos y configurados antes de pasarlos a strBody
Entonces, coloque strBody
después del strBody
For r = 1 to ...