Envío múltiple de mailto: enlaces en una hoja de cálculo de Excel

1

Tengo una hoja de cálculo de Excel que tiene una lista de mailto:hipervínculos en una de las columnas.
Me gustaría poder enviar un correo electrónico a una selección de ellos, pero hacer clic en uno, incluso como parte de una selección, solo envía ese enlace al programa de correo, y al intentar copiarlos solo se copia el texto de la pantalla. parece que no hay forma de copiar el enlace subyacente.

Tampoco puedo encontrar una manera de acceder al enlace subyacente desde una fórmula en otra celda para concatenar los diferentes grupos lógicos de personas en enlaces únicos que contienen todas sus direcciones.

Busqué en Google y encontré muchas soluciones para enlaces con varias direcciones en ellas, pero ninguna que toma un conjunto de enlaces, cada uno de los cuales contiene una sola dirección como punto de partida.

¿Alguien sabe cómo hacerlo?

Craig Graham
fuente

Respuestas:

0

Tendremos que usar un poco de VBA aquí, pero no nos preocupemos, ¡es agradable y fácil!

Presione Alt+ F11. Esto abrirá el Editor de Visual Basic. Desde la barra de menú superior, haga clic en Insertar y luego en Módulo . Pegue el siguiente código en la ventana que aparece a la derecha:

Function GetEmailAddress(EmailCell As Range) As String
   GetEmailAddress = Replace(EmailCell.Hyperlinks(1).Address, "mailto:", "")
End Function

Puede cerrar esta ventana ahora y volver a su hoja de cálculo.

Agregue una columna a la derecha de su lista de nombres que contienen enlaces. Vamos a almacenar nuestras direcciones de correo electrónico aquí. Ingrese esta fórmula y copie:

=GetEmailAddress(A2)

ingrese la descripción de la imagen aquí

Concatene las direcciones de correo electrónico que le interesan en otra celda e hipervínculo el resultado:

=HYPERLINK("mailto:"&A2&","&A3&","&A4&","&A5,"email people")

Esto produce un enlace que dice email peoplecomo se muestra en la celda D4 en la captura de pantalla. Cuando hace clic en el enlace, envía la lista de direcciones a su cliente de correo electrónico.

ingrese la descripción de la imagen aquí

Nota : como hemos agregado un código VBA, necesitaremos guardar el archivo como un archivo .xls o .xlsm.

Andi Mohr
fuente
El problema es que el texto que se muestra es el nombre de la persona, por lo que si intento algo con fórmulas obtengo los nombres para mostrar, no las direcciones de correo electrónico. No puedo encontrar una manera de obtener el objetivo de enlace real en una fórmula.
Craig Graham
Ah, ¿quiere decir que el valor de la celda es literalmente el nombre de la persona, y alguien ha hecho clic derecho en la celda, agregado un hipervínculo e incrustado la dirección de correo electrónico de esa manera? Ahh Bien, sí, podemos lidiar con eso. Aguanta una marca.
Andi Mohr
Sip. No sé por qué no solo hay una columna de correo electrónico separada, sino que no soy yo quien la mantiene, así que es lo que es.
Craig Graham
0

Dado que la respuesta aceptada implica hacer una columna adicional, y en realidad no estoy demasiado preocupado por tener un hipervínculo final, estoy bastante contento con solo copiar y pegar una cadena al programa de correo electrónico, he adaptado la respuesta aceptada con esto función. Puede ser útil para alguien que hace algo similar y no funcionó como un comentario.

Function GetEmailAddress(EmailCell As Range) As String

    Dim addressList As String
    Dim sep As String

    For Each c In EmailCell.Cells
        addressList = addressList & sep & Replace(c.Hyperlinks(1).Address, "mailto:", "")
        sep = ","
    Next

   GetEmailAddress = addressList

End Function 
Craig Graham
fuente