Abrir sitios en un navegador (Microsoft Excel)
Steve tiene un rango de celdas (A1: A10) que contiene direcciones de sitios web, por ejemplo, www.example.com. Se pregunta si es posible, dentro de una macro, abrir cada una de estas direcciones en un navegador a la vez en pestañas separadas del navegador.
Hay un par de formas en que puede abordar esta tarea, y la que elija depende en gran medida de la naturaleza de los datos en su hoja de trabajo. Si las celdas contienen hipervínculos activos (aquellos en los que si hace clic en ellos, la dirección se abre en un navegador), entonces puede usar una macro bastante simple:
Sub FollowHyperlinks1() Dim MyRange As Range Dim hl As Hyperlink On Error Resume Next Set MyRange = Range("A1:A10") For Each hl In MyRange.Hyperlinks hl.Follow Next hl End Sub
La macro simplemente mira todos los hipervínculos en el rango de A1: A10 y usa el método Seguir para abrir cada uno de ellos en su navegador predeterminado.
Debido a la forma en que su sistema operativo transfiere información de Excel a su navegador, es una buena idea tener su navegador abierto antes de ejecutar la macro. La razón de esto es porque, en las pruebas, descubrimos que en realidad puede terminar con dos instancias del navegador abiertas, con algunas direcciones abiertas en una instancia y otras en la otra.
Esto aparentemente ocurre debido al retraso en la apertura de la primera instancia del navegador. Si el navegador está abierto antes de que se ejecute la macro, entonces no hay demora y cada dirección se abre en una pestaña diferente de la misma instancia del navegador.
Si las direcciones en su hoja de trabajo pueden no ser hipervínculos activos, entonces no puede confiar en el uso de la colección Hipervínculos para el rango.
En su lugar, debe mirar el valor de cada celda en el rango:
Sub FollowHyperlinks2() Dim MyRange As Range Dim cell As Range Dim sTemp As String On Error Resume Next Set MyRange = Range("A1:A10") For Each cell In MyRange sTemp = cell.Value ThisWorkbook.FollowHyperlink Address:=sTemp Next cell End Sub
Este enfoque utiliza el método FollowHyperlink para cargar la dirección en la variable sTemp. En este caso, no importa si los contenidos de las celdas son hipervínculos activos o no; el código todavía intenta abrirlos en un navegador.
Por último, si es posible que sus datos no contengan direcciones totalmente calificadas, deberá utilizar un enfoque diferente. Por ejemplo, Steve mencionó que tiene direcciones como www.example.com en la hoja de trabajo, pero esa dirección no funcionará con los ejemplos hasta ahora. Si a sus datos les falta http: // al principio (o alguna variante, como https: //), el código no abrirá la dirección en el navegador. En sus datos tiene esta peculiaridad, entonces una pequeña modificación a la macro está en orden:
Sub FollowHyperlinks3() Dim MyRange As Range Dim cell As Range Dim sTemp As String On Error Resume Next Set MyRange = Range("A1:A10") For Each cell In MyRange sTemp = cell.Value If InStr(sTemp, "://") = 0 Then sTemp = "http://" & sTemp End If ThisWorkbook.FollowHyperlink Address:=sTemp Next cell End Sub
Tenga en cuenta que este ejemplo examina el contenido de sTemp para ver si tiene los caracteres «: //» dentro. De lo contrario, se agrega el prefijo http: // al contenido de la celda y Excel intenta usar el método FollowHyperlink para abrir la dirección modificada.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (11414) se aplica a Microsoft Excel 2007, 2010, 2013 y 2016.
Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí: link: / excel-Opening_Sites_in_a_Browser [Abrir sitios en un navegador]
.