variable tipos tipo texto template single long dim vba outlook

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 ...