Открытие сайтов в браузере (Microsoft Excel)
У Стива есть диапазон ячеек (A1: A10), содержащий адреса веб-сайтов, например www.example.com. Он задается вопросом, можно ли в макросе открыть каждый из этих адресов в браузере сразу на отдельных вкладках браузера.
Есть несколько способов подойти к этой задаче, и какой из них вы выберете, во многом зависит от характера данных на вашем листе. Если в ячейках есть активные гиперссылки (те, что при нажатии на них адрес открывается в браузере), то можно использовать довольно простой макрос:
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
Макрос просто просматривает все гиперссылки в диапазоне A1: A10 и использует метод Follow, чтобы открыть каждую из них в браузере по умолчанию.
Из-за того, как ваша операционная система передает информацию из Excel в ваш браузер, рекомендуется открыть браузер перед запуском макроса. Причина этого в том, что при тестировании мы обнаружили, что на самом деле вы можете открыть два экземпляра браузера, при этом некоторые адреса открыты в одном экземпляре, а некоторые — в другом.
Очевидно, это происходит из-за задержки открытия первого экземпляра браузера. Если браузер открыт до запуска макроса, то задержки нет, и каждый адрес открывается на отдельной вкладке того же экземпляра браузера.
Если адреса на вашем листе могут не быть активными гиперссылками, вы не можете полагаться на использование коллекции гиперссылок для диапазона.
Вместо этого вам нужно посмотреть значение каждой ячейки в диапазоне:
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
Этот подход использует метод FollowHyperlink для загрузки адреса в переменную sTemp. В этом случае не имеет значения, являются ли содержимое ячеек активными гиперссылками или нет; код по-прежнему пытается открыть их в браузере.
Наконец, если ваши данные могут не содержать полностью квалифицированных адресов, вам все равно придется использовать другой подход. Например, Стив упомянул, что в таблице есть такие адреса, как www.example.com, но такой адрес пока не будет работать с примерами. Если в ваших данных отсутствует http: // в начале (или какой-либо вариант, например https: //), то код не откроет адрес в браузере. В ваших данных есть эта особенность, тогда в макрос можно внести небольшие изменения:
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
Обратите внимание, что в этом примере проверяется содержимое sTemp на предмет наличия в нем символов «: //». В противном случае к содержимому ячейки добавляется префикс http: //, и Excel пытается использовать метод FollowHyperlink, чтобы открыть измененный адрес.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (11414) применим к Microsoft Excel 2007, 2010, 2013 и 2016.
Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь: link: / excel-Opening_Sites_in_a_Browser [Открытие сайтов в браузере]
.