Excel макрос открыть ссылку

 

axis86

Пользователь

Сообщений: 35
Регистрация: 11.04.2013

#1

11.04.2013 17:53:24

Здравствуйте! Подскажите, пожалуйста, как с помощью макроса можно открыть гиперссылку такого вида:

Код
=ГИПЕРССЫЛКА("."&D9&".JPG";D9)

Пробовал так:

Код
Sub FollowHypelink()   
On Error Resume Next   
    If InStr(1, ActiveCell.Formula, "hyperlink", vbTextCompare) > 0 Then   
        ThisWorkbook.FollowHyperlink Evaluate(ActiveCell.Formula)   
    Else   
        ActiveCell.Hyperlinks(1).Follow   
    End If   
End Sub
 

Обычные гиперссылки открываются, а формулы-гиперссылки — нет.
Заранее благодарен!

Прикрепленные файлы

  • test1.xlsx (10.66 КБ)
  • 637024.jpg (31.87 КБ)
  • 772185.jpg (46.36 КБ)

 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Как получить адрес гиперссылки из ячейки

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

axis86

Пользователь

Сообщений: 35
Регистрация: 11.04.2013

Вроде всё сделал как описано в статье, но не работает почему-то. Даже в этом примере, который в статье, не могу макросом открыть гиперссылку созданную формулой, а обычная открывается…
Может можно как-то по другому сделать? Суть такова, что мне нужно открывать гиперссылки созданные формулой клавиатурой, не важно каким сочетанием или комбинацией клавиш.

Изменено: axis8613.04.2013 22:35:50

 

EducatedFool

Пользователь

Сообщений: 3631
Регистрация: 23.12.2012

#4

13.04.2013 18:11:51

Это смотрели?

http://excelvba.ru/code/FormulaHyperlinks#comment-1083

Код
Sub ПереходПоГиперссылкеИзАктивнойЯчейки()

    ' получаем гиперссылку из активной ячейки листа
   URL$ = FormulaHyperlink(ActiveCell)
    
    ' если гиперссылка найдена - переходим по ней
   If Len(URL$) Then ThisWorkbook.FollowHyperlink URL$
    
End Sub

Function FormulaHyperlink(ByRef cell As Range) As String
    If cell.HasFormula And (cell.Hyperlinks.Count = 0) Then
        If cell.Formula Like "=HYPERLINK*" Then
            FormulaHyperlink = Evaluate(Mid$(Split(cell.Formula, ",")(0), 12))
        End If
    End If
End Function
 

The_Prist

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#5

13.04.2013 18:21:21

Я не понимаю, в чем сложности применения кода по данной мной ссылке? Добавили функцию к себе и переходите так:

Код
Sub FollowHypelink()
    On Error Resume Next
    ThisWorkbook.FollowHyperlink Get_Hyperlink_Address(ActiveCell)
End Sub

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Дима, в его случае это не работает, — Evaluate надо применять к начинке функции,
как у меня: Evaluate(Mid$(Split(cell.Formula, «,»)(0), 12))

а не как у ТС: Evaluate(ActiveCell.Formula)
и как у тебя (вообще не применяется)

Потому что у него ссылка составная — из нескольких ячеек собирается.

 

axis86

Пользователь

Сообщений: 35
Регистрация: 11.04.2013

#7

15.04.2013 11:41:31

Цитата
EducatedFool пишет:
Это смотрели?
http://excelvba.ru/code/FormulaHyperlinks#comment-1083

Код
 Sub ПереходПоГиперссылкеИзАктивнойЯчейки()

    ' получаем гиперссылку из активной ячейки листа
   URL$ = FormulaHyperlink(ActiveCell)
    
    ' если гиперссылка найдена - переходим по ней
   If Len(URL$) Then ThisWorkbook.FollowHyperlink URL$
    
End Sub

Function FormulaHyperlink(ByRef cell As Range) As String
    If cell.HasFormula And (cell.Hyperlinks.Count = 0) Then
        If cell.Formula Like "=HYPERLINK*" Then
            FormulaHyperlink = Evaluate(Mid$(Split(cell.Formula, ",")(0), 12))
        End If
    End If
End Function 

Спасибо, огромное! Работает как часы!

Если можно еще маленький вопрос: как можно в 2007 эклесе сделать чтобы картинки из ссылок открывались в стандартной программе просмотра изображений, а не в ИЕ? Уже весь интернет перерыл, ничего не помогает  :(

Уже решил проблему самостоятельно  :)
Еще раз, Большой Спасибо!

Изменено: axis8615.04.2013 12:05:49

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#8

15.04.2013 12:14:31

axis86, а в данном случае цитирование обязательно? Не пробовали ПРОСТО ответить?

Этот макрос позволяет открыть в браузере все гиперссылки из выделенного диапазона ячеек.

Зачем нужен такой макрос, если можно щелкнуть на гиперссылке, и она так же откроется в браузере?

  • Некоторые гиперссылки могут быть неактивными, то есть в ячейку просто введен текст, содержащий ссылку
    В этом случае придется вручную копировать содержимое ячейки, и вставлять в браузер
  • Гиперссылок может быть много, и щелкать на каждой из них — долго
  • Некоторые гиперссылки не открываются в браузере, и Excel выдаёт ошибку.
    Причина этого: Excel сначала сам прогружает ссылку, и только если ему удалось прогрузить страницу, только после этого он отправляет её в браузер. Мало того что это иногда сильно увеличивает время открытия ссылок, так иногда и не даёт открыть некоторые рабочие ссылки, где на сайте нужна авторизация (или если ссылка не открывается в Internet Explorer, но открывается в современном браузере)

Скопируйте нижеприведённый код в свой файл Excel, а назначьте кнопке или комбинации клавиш макрос OpenHyperlinksInBrowser:

Sub OpenHyperlinksInBrowser()
    ' макрос открытия гиперссылок в браузере по умолчанию
    ' © 2022 ExcelVBA.ru
    On Error Resume Next
    Dim hl$, coll As New Collection, msg$, cell As Range, link, i&, cellValue$
 
    ' перебираем все непустые ячейки
    For Each cell In Intersect(ActiveSheet.UsedRange, Selection).Cells
        If Len(cell) Then
            ' считываем гиперссылку из ячейки
            hl$ = "": hl$ = GetCellHyperlinkAddress(cell, True)
 
            For i = 1 To 2000
                DoEvents ' пауза
            Next
            If hl$ Like "http*://?*.?*" Then coll.Add hl$
            If coll.Count > 20 Then Exit For ' ограничение на максимум 20 гиперссылок
        End If
    Next cell
 
    If coll.Count > 6 Then ' если выделено много ссылок - запрашиваем подтверждение
        msg$ = "Уверены, что хотите открыть в браузере сразу " & coll.Count & " ссылок?"
        If MsgBox(msg$, vbDefaultButton2 + vbOKCancel) = vbCancel Then Exit Sub
    End If
 
    For Each link In coll ' перебираем найденные ссылки
        CreateObject("WScript.Shell").Run link ' открываем ссылку link в браузере по умолчанию
    Next
End Sub
 
Function GetCellHyperlinkAddress(ByRef cell As Range, Optional AllowInactiveURL As Boolean = False) As String
    ' функция извлечения гиперссылки из ячейки
    ' поддерживаются активные и неактивные ссылки, и также формульные гиперссылки
    On Error Resume Next
    Dim v$
    With cell.MergeArea.Hyperlinks(1)
        GetCellHyperlinkAddress = .Address
        If Len(GetCellHyperlinkAddress) Then
            If Len(.SubAddress) Then GetCellHyperlinkAddress = GetCellHyperlinkAddress & "#" & .SubAddress
            Exit Function
        End If
    End With
    If AllowInactiveURL Then v$ = cell.Value: If InStr(1, v$, "://") > 0 Then If v$ Like "http*://?*.?*" Then GetCellHyperlinkAddress = v$: Exit Function
 
    Dim txt$, Brackets&, Quotes&, i&
    If GetCellHyperlinkAddress = "" Then
        If cell.Formula Like "=HYPERLINK*" Then
            txt$ = Mid$(cell.Formula, 12)
            txt$ = Left(txt, Len(txt) - 1)
            For i& = 1 To Len(txt)
                Select Case Mid(txt, i, 1)
                    Case "(": Brackets& = Brackets& + 1
                    Case ")": Brackets& = Brackets& - 1
                    Case """": Quotes& = Quotes& + 1
                    Case ","
                        If (Brackets& = 0) And (Quotes& Mod 2 = 0) Then
                            txt = Left(txt, i - 1)
                            Exit For
                        End If
                End Select
            Next
            GetCellHyperlinkAddress = Evaluate(txt)
        End If
    End If
    Err.Clear
End Function
  • 629 просмотров

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

Открытие гиперссылок в столбце макросом

ДмитрийМ

Дата: Пятница, 14.06.2013, 13:37 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Друзья подскажите пожалуйста макрос, который мог бы открывать гиперссылки,указанные в столбце, в браузер.Например по 30 штук за 1 раз.
Спасибо большое!

 

Ответить

Serge_007

Дата: Пятница, 14.06.2013, 16:24 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

[vba]

Код

Sub Hyperlink()
Dim HL As Range
For Each HL In Range(«A1:A30»)
     HL.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
     Next
End Sub

[/vba]


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

ДмитрийМ

Дата: Понедельник, 17.06.2013, 13:46 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Спасибо,большое=)

 

Ответить

Applic

Дата: Среда, 10.07.2013, 18:26 |
Сообщение № 4

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Доброго дня Serge_007, подскажите а чем может быть проблема,
добавил в Ваш код несколько строчек для распечатки открываемых документов и все работает пока
не добавляю следующее:

SendKeys «^p», True
SendKeys «{Enter}», True

причем на старой машине с ХР офис 7 все работало,
на работе стоит 7 — 64 разрядная с офисом 10. Происходит какая-то мистика))) код то работает то нет…
зависает на строчке:
HL.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

весь код выглядит так
[vba]

Код

Private Declare Function ShellExecute Lib «shell32.dll» _
Alias «ShellExecuteA» (ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function GetTickCount Lib «kernel32» () As Long

Sub Marhryt()

     Dim HL As Range

     For Each HL In Range(«C7:C10»)
     HL.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

           Paus = 2000
     Delay (Paus)

     SendKeys «^p», True
     SendKeys «{Enter}», True

         Paus = 500
     Delay (Paus) ‘delay for data communication on printer

               SendKeys «%{F4}», True ‘Close file
     Next

End Sub

Private Sub Delay(Paus)

     SStime = GetTickCount
     DoEvents       
     Do While GetTickCount — SStime < Paus: DoEvents: Loop

End Sub

[/vba]

Заранее Спасибо!

 

Ответить

Applic

Дата: Четверг, 11.07.2013, 18:53 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Еще раз прошу помощи!!!! Помогите, пожалуйста!
Смысл выше изложенного кода должен заключается в следующем
на листе1 в книге эксель существует список гиперссылок C7:C10 ведущий в папку с pdf файлами. Код открывает по очереди документы из списка C7:C10, распечатывает и закрывает.
Все так и происходит за исключением того, что не открывается окно вывода на печать соответственно документ не распечатывается)…
Но на соседней машине с более старым офисом и виндоусом все работает!!!
Что делать!!! Подскажите!
Я сам не программист.
Когда то на форуме нашел этот код. Как подступиться к этой проблеме не знаю.

 

Ответить

Serge_007

Дата: Четверг, 11.07.2013, 19:58 |
Сообщение № 6

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

на соседней машине с более старым офисом и виндоусом все работает

Тут помочь не могу — нету у меня старого офиса и винды

Происходит какая-то мистика))) код то работает то нет

А тут тем более. Надо видеть


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Applic

Дата: Пятница, 12.07.2013, 10:57 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Serge_007, подскажите пожалуйста существует ли возможность в данном случае заменить код:

SendKeys «^p», True
SendKeys «{Enter}», True

на альтернативный код, ведь по сути окно adobe acrobat с открытым документом находится на рабочем столе и остается только дать команду распечатать.

 

Ответить

Serge_007

Дата: Пятница, 12.07.2013, 11:08 |
Сообщение № 8

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Появилась одна мысль: попробуйте проверить какая раскладка клавиатуры в случае срабатывания и не срабатывания


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Applic

Дата: Пятница, 12.07.2013, 18:54 |
Сообщение № 9

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Serge_007, да Вы просто гений, так и есть!
Когда код не работал действительно стояла не анг. раскладка.
Спасибо огромное!
Все работает!
Испортил столько бумаги, до сих пор не верится))), все работает!!!

 

Ответить

Applic

Дата: Суббота, 13.07.2013, 22:14 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Serge_007, еще раз прошу Вашего внимания
я попробовал исправить ситуацию с раскладкой клавиатуры следующим кодом:

[vba]

Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ВключитьАнглийскуюРаскладку
End Sub

[/vba]

получилось следующее:
если раскладка английская все работает.
если другая, то раскладка на время выполнения кода переключается на английскую, но при этом распечатывание документа не происходит.
т.е. выходит , что на самом деле переключения не происходит?…
Возможно ли это как то исправить?
Спасибо заранее)))

Сообщение отредактировал ApplicСуббота, 13.07.2013, 22:41

 

Ответить

Serge_007

Дата: Суббота, 13.07.2013, 22:17 |
Сообщение № 11

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Applic

Дата: Суббота, 13.07.2013, 22:44 |
Сообщение № 12

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Serge_007, нет еще не читал…, но я уже все где могу исправил!

 

Ответить

Applic

Дата: Воскресенье, 14.07.2013, 00:10 |
Сообщение № 13

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Serge_007, еще раз огромное СПАСИБО!
Последний пример, по Вашей ссылке, отлично работает, но применительно к моему примеру пришлось в свой код добавить еще одну строчку:
[vba][/vba]
иначе не хотел печатать если изначально стоит не англ. раскладка.
После выбора ячейки «С1» для которой тоже предусмотрено переключение клавиатуры на англ. язык все заработало!
СПАСИБО ОГРОМНОЕ!

 

Ответить

Kattisi

Дата: Воскресенье, 23.02.2014, 13:21 |
Сообщение № 14

Здравствуйте,

Sub Hyperlink()
Dim HL As Range
For Each HL In Range(«A1:A30»)
HL.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Next
End Sub

Не работает, если в столбце указана формула =гиперссылка(B1)

Помогите, пожалуйста, решить эту проблему.

 

Ответить

How to open a website in the browser from Excel using a Macro and VBA.

This is the same as following a link or clicking a link from the worksheet except that it will be done through a Macro.

This does not open a website within Excel. Everything will still open in the browser.

The Macro

Here is the full macro that you need:

Sub Go_to_Website()

Dim ie As Object

Set ie = CreateObject("INTERNETEXPLORER.APPLICATION")

ie.NAVIGATE "http://www.google.com"

ie.Visible = True

While ie.busy

 DoEvents

Wend

End Sub

This is a simple macro and it will open the website into Internet Explorer by default.

To use the macro, change http://www.google.com to whatever website you want the user to visit.

You can also replace this with a variable that holds the website url in order to make this a bit more versatile. In that case, you would just replace «http://www.google.com» with the desired variable name and without the double quotation marks around the variable name.

This is a fairly simple macro and you should not need to change anything other than what I just mentioned.

If you don’t know how to put this macro into Excel, you can read this tutorial here: Install a Macro into Excel

Make sure to download the sample file attached to this tutorial so you can get the macro ready to go in Excel.


Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Similar Content on TeachExcel

Open any Program from Excel

Macro: This free excel macro allows you to open any program on your computer from excel. You…

Login to a Website using a Macro

: Connect and login to a website using a macro in Excel.
This allows you to open a website a…

Open Microsoft Outlook from Excel

Macro: This free macro will open the Microsoft Outlook program on your computer. You do need…

Open Microsoft Word from Excel

Macro: This free macro will open the Microsoft Word program on your computer. You do need to have…

Open Microsoft PowerPoint from Excel

Macro: This free macro will open the Microsoft PowerPoint program on your computer. You do need t…

Make Users Enable Macros in Order to View a Workbook in Excel

Tutorial: Tutorial showing you how to make a user enable macros in a workbook in order to view the w…

Subscribe for Weekly Tutorials

BONUS: subscribe now to download our Top Tutorials Ebook!

Excel VBA Course

Excel VBA Course — From Beginner to Expert

200+ Video Lessons

50+ Hours of Video

200+ Excel Guides

Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)

View Course

Вставленные в таблицу Excel ссылки не всегда становятся активными, из-за чего переход по ним в одно нажатие попросту невозможен. В таких случаях ссылку необходимо активировать, чтобы дальнейшее взаимодействие с ней было более удобным. Для этого есть разные способы, каждый из которых подойдет в определенных ситуациях.

Вариант 1: Вставка ссылки из браузера

Excel работает таким образом, что при копировании ссылки из адресной строки веб-обозревателя она сразу же становится активной. Используйте этот метод, если нужно вставить новые строки в таблицу, а не редактировать уже существующие. Найдите требуемую страницу в браузере и скопируйте ее, выделив и используя комбинацию клавиш Ctrl + C.

Копирование адреса для активации ссылки в Excel

Перейдите в Microsoft Excel, после чего вставьте ссылку в подходящую ячейку, подогнав ее по размеру. Выберите любую другую клетку для редактирования, чтобы заметить, как применяется изменение к этой. Теперь вы можете нажать ЛКМ по ссылке, чтобы сразу открыть ее в браузере по умолчанию. 

Вставка адреса в поле для активации ссылки в Excel

Прочитайте текст на всплывающей подсказке, появляющейся при наведении курсора на саму ссылку: в ней есть информация о том, что переход происходит при одинарном нажатии, а для выделения необходимо кликнуть и удерживать кнопку мыши. Это поможет разобраться с редактированием, если ранее вы с ним не работали. Информация об адресе в ячейке для активации ссылки в Excel

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Вариант 2: Самостоятельная активация ссылки

Разберу вариант, когда ссылка уже вставлена в таблицу, но не является активной. Этот же метод подойдет в тех случаях, когда нужно сделать слово или надпись с адресом в виде ссылки, по которой и будет осуществлен переход при нажатии. 

  1. Выделите ячейку со ссылкой или надписью, после чего нажмите по ней ПКМ.Выбор ячейки для активации ссылки в Excel

  2. Из появившегося контекстного меню выберите пункт «Ссылка», открыв соответствующее окно с настройками.Переход в меню Ссылка для активации ссылки в Excel

  3. Если сейчас ссылка представлена в поле «Текст», ее необходимо скопировать и перенести в поле «Адрес».Перенос текста в адрес для активации ссылки в Excel

  4. Вместо ссылки в поле «Текст» вы можете вписать любую надпись, нажатие по которой отвечает за переход по ссылке, вставленной в поле «Адрес».Изменение текста ячейки для активации ссылки в Excel

  5. Примените изменения и вернитесь к таблице. На следующем скриншоте вы видите результат активации ссылки с заменой ее текста на более уместный.Просмотр результата для активации ссылки в Excel

Думаю, принцип использования окна «Ссылка» вам понятен, и проблем с переименованием возникнуть не должно. Используйте такой метод, когда нужно заменить громоздкую ссылку на лаконичную надпись, которая не будет нарушать внешний вид таблицы, но при этом останется функционально полезной.

Вариант 3: Использование макроса

Последний вариант самый необычный и подходит в редких случаях. Чаще всего он применим, когда в таблице уже есть перечень ссылок, находящихся в рамках одного столбца, но при этом они неактивны. Активировать каждую при помощи представленных выше инструкций можно, но это займет много времени. Проще сделать это при помощи специального макроса.

  1. Для начала через главное окно перейдите в меню «Параметры».Переход в Параметры для активации ссылки в Excel

  2. Выберите раздел «Настроить ленту» и поставьте галочку возле основной вкладки «Разработчик». Так вы обеспечите ее отображение в верхней панели программы, что нам сейчас и пригодится.Включение вкладки Разработчик для активации ссылки в Excel

  3. Примените изменения, вернитесь к таблице, перейдите на соответствующую вкладку и запустите оснастку «Visual Basic».Переход к созданию макроса для активации ссылки в Excel

  4. Дважды щелкните по файлу книги, чтобы справа отобразилось окно редактирования кода.Создание макроса для активации ссылки в Excel

  5. Вставьте туда оставленный ниже код, заменив значения «a2» на номер ячейки, с которой начинается активация ссылок, а «а» – на букву столбца.

    Sub HyperSsylka()
    Dim cell As Range, ra As Range: Application.ScreenUpdating = False
    Set ra = Range([a2], Range("a" & Rows.Count).End(xlUp))
    For Each cell In ra.Cells
    If Len(cell) Then cell.Hyperlinks.Add cell, cell
    Next cell
    End Sub
    
    Sub HyperSsylkaSelect()
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In Selection
    If Len(cell) Then cell.Hyperlinks.Add cell, cell
    Next cell
    End Sub

    Строку для редактирования вы видите на следующем изображении. Редактирование макроса для активации ссылки в Excel

  6. Сохраните результат, нажав по соответствующей кнопке на панели сверху или используя сочетание клавиш Ctrl + S.Сохранение макроса для активации ссылки в Excel

  7. Закройте редактор кода и запустите окно «Макрос». Дважды щелкните по строке с созданным макросом для активации ссылок.Применение макроса для активации ссылки в Excel

  8. Все изменения выполняются автоматически, а далее вам остается только убедиться в том, что вместо обычного текста появились активные ссылки, переход по которым возможен (если в их содержимом действительно находится веб-адрес).Проверка макроса для активации ссылки в Excel

Все перечисленные варианты работают в любых ситуациях, а выбор зависит исключительно от того, с какой задачей столкнулись лично вы. Конечно, для активации одной ссылки не захочется создавать макрос, а вот для массовой обработки он окажется как никогда кстати.

Открытие сайта методом Workbook.FollowHyperlink с помощью кода VBA Excel. Сокращенный синтаксис метода, примеры использования.

Метод Workbook.FollowHyperlink

FollowHyperlink – это метод объекта Workbook, позволяющий открыть сайт по указанному адресу в браузере, использующемуся по умолчанию.

Метод Workbook.FollowHyperlink предназначен для более широкого использования в VBA Excel, чем просто открытие сайтов. С полным описанием и всеми параметрами метода вы можете ознакомиться на сайте разработчика.

В этой же статье мы рассмотрим сокращенный синтаксис метода Workbook.FollowHyperlink с одним аргументом: адрес сайта.

Сокращенный синтаксис метода

Сокращенный синтаксис метода Workbook.FollowHyperlink представлен в VBA Excel двумя равнозначными вариантами:

Вариант 1

ThisWorkbook.FollowHyperlink Address:=«http://imya-sayta.ru/»

Вариант 2

ThisWorkbook.FollowHyperlink («http://imya-sayta.ru/»)

Примечания

1. Для сайтов на защищенном протоколе «https» можно указывать протокол «http», так как у защищенных сайтов есть переадресация с «http» на «https».

2. Если сайт по указанному адресу не существует, будет сгенерирована ошибка.

Примеры использования

Пример 1
Открытие сайта нажатием элемента управления Label на пользовательской форме VBA Excel:

‘Записываем адрес сайта

‘в заголовок метки Label1

Private Sub UserForm_Initialize()

  With Label1

    .Caption = «http://imya-sayta.ru/»

    .Font.Size = 10

    .Font.Underline = True

  End With

End Sub

‘Переходим по гиперссылке

‘при нажатии на метку Label1

Private Sub Label1_Click()

On Error Resume Next

  ThisWorkbook.FollowHyperlink _

  Address:=Label1.Caption

End Sub

Элемент управления Label со ссылкой на сайт

Выражение On Error Resume Next необходимо, чтобы корректно завершить процедуру при возникновении ошибки, когда указанный сайт не существует. Если хотите вывести сообщение об ошибке, используйте простой обработчик ошибок с оператором On Error GoTo.

Пример 2
Пример выбора сайта с помощью элемента управления ComboBox с автоматическим открытием гиперссылки и обработчиком ошибок:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

‘Записываем адреса сайтов

‘в комбинированный список

Private Sub UserForm_Initialize()

  With ComboBox1

    .AddItem «http://sayt-1.ru/»

    .AddItem «http://sayt-2.ru/»

    .AddItem «http://sayt-3.ru/»

    .AddItem «http://sayt-4.ru/»

    .AddItem «http://sayt-5.ru/»

  End With

End Sub

‘Переходим по гиперссылке

‘при выборе сайта в списке

Private Sub ComboBox1_Change()

On Error GoTo Stroka

  ThisWorkbook.FollowHyperlink _

  Address:=ComboBox1.Value

Exit Sub

Stroka:

  If Err.Description <> «» Then

    MsgBox «Произошла ошибка: « _

    & Err.Description

  End If

End Sub

Элемент управления ComboBox со списком сайтов

Так как в списке из примера перечислены несуществующие сайты, при выборе одного из них, обработчик ошибок выведет следующее сообщение:

Сообщение об ошибке метода Workbook.FollowHyperlink

Содержание

  • Способ 1: Копирование ссылки через браузер
  • Способ 2: Использование инструмента «Ссылка»
  • Способ 3: Создание макроса для быстрой активации ссылок
  • Вопросы и ответы

Как сделать ссылку активной в Экселе

Способ 1: Копирование ссылки через браузер

Редактировать ссылку не придется, если изначально знать, как правильно добавить ее в Excel. При наличии возможности скопировать адрес через строку в браузере, лучше сразу же сделайте это, а затем переходите к вставке ссылки в таблицу.

Для этого можно использовать любой веб-обозреватель, активировав копирование через контекстное меню или горячую клавишу Ctrl + C.

Копирование ссылки в браузере для дальнейшей вставки ее в Excel как активной

В таблице Эксел выберите подходящую ячейку и нажмите Ctrl + V для вставки скопированной ранее ссылки. Переключитесь на любую другую ячейку, чтобы увидеть, как строка подсвечивается синим, а это значит, ссылка является активной.

Вставка скопированной через браузер ссылки в таблицу Excel для создания ее активной

Способ 2: Использование инструмента «Ссылка»

Использование предыдущего способа даже с целью замены уже добавленных строк — не всегда лучший вариант, особенно когда речь идет о создании нескольких активных ссылок сразу же. В этом случае более простым методом считается инструмент «Ссылка», присутствующий в рассматриваемой программе.

  1. Найдите строку, где строка должна быть активной ссылкой, и нажмите по ней правой кнопкой мыши.
  2. Выделение текста ссылки для создания ее активной через меню Ссылка в Excel

  3. В появившемся контекстном меню щелкните по последней строке «Ссылка».
  4. Открытие меню Ссылка для настройки активной ссылки в Excel

  5. В текущей ситуации потребуется выбрать вариант «файлом, веб-страницей» в блоке «Связать с:».
  6. Выбор режима создания активной ссылки в соответствующем меню Excel

  7. Скопируйте текущий текст, если он уже является необходимой для перехода ссылкой, а затем вставьте его в поле «Адрес» и примените изменения.
  8. Ввод адреса ссылки для создания ее активной в Excel через соответствующее меню

  9. Вернитесь к таблице и убедитесь в правильности выполненных действий. Осуществите то же самое с остальными ячейками, ссылки в которых необходимо сделать активными.
  10. Успешное создание активной ссылки через соответствующее меню в Excel

  11. Точно так же поступите и с ячейками, где изначально вместо текста ссылки расположена обычная надпись. Вставьте в строку «Адрес» название сайта для перехода и примените новые настройки.
  12. Создание активной ссылки из обычной надписи через меню настройки в Excel

Способ 3: Создание макроса для быстрой активации ссылок

Пользовательский макрос, активирующий все добавленные ссылки в определенном столбце, пригодится пользователям, столкнувшимся с задачей редактирования группы ссылок, по которым не удается перейти прямо из таблицы. В этом случае потребуются инструменты разработчика, поэтому заранее активируйте их следующим образом:

  1. После открытия таблицы перейдите на первую вкладку «Файл».
  2. Переход в меню Файл для открытия Параметров в Excel перед добавлением макроса для активных ссылок

  3. На панели слева выберите раздел «Параметры».
  4. Открытие меню настроек Excel для включения инструментов разработчика перед добавлением макросов в Excel

  5. Откройте меню «Настроить ленту».
  6. Открытие меню настроек ленты для включения инструментов разработчика в Excel

    Lumpics.ru

  7. Отметьте маркером вкладку «Разработчик», чтобы добавить ее в ленту.
  8. Включение инструментов разработчика в Excel перед созданием макроса для активных ссылок

Закройте окно настроек и переходите к созданию макроса, о чем мы поговорим в инструкции ниже.

  1. За создание макросов в Excel отвечает отдельный модуль, для запуска которого перейдите на вкладку «Разработчик».
  2. Переход к инструментам разработчика для создания макроса активных ссылок в Excel

  3. Оттуда запустите «Visual Basic».
  4. Запуск инструмента для создания макроса активных ссылок в Excel

  5. Дважды щелкните по строке «ЭтаКнига», открывающей окно создания макроса.
  6. Выбор документа для создания макроса активных ссылок в Excel

  7. Вставьте следующее содержимое и замените «c2» и «c» в выделенной на скриншоте строке на буквы и начало столбца, где и расположены ссылки для активации.

    Sub HyperSsylka()
    Dim cell As Range, ra As Range: Application.ScreenUpdating = False
    Set ra = Range([c2], Range("c" & Rows.Count).End(xlUp))
    For Each cell In ra.Cells
    If Len(cell) Then cell.Hyperlinks.Add cell, cell
    Next cell
    End Sub


    Sub HyperSsylkaSelect()
    Dim cell As Range: Application.ScreenUpdating = False
    For Each cell In Selection
    If Len(cell) Then cell.Hyperlinks.Add cell, cell
    Next cell
    End Sub

  8. Создание и редактирование макроса активных ссылок в Excel

  9. Осталось только щелкнуть «Сохранить» или использовать горячую клавишу Ctrl + S, после чего закройте средство создания макросов.
  10. Сохранение макроса активных ссылок и закрытие окна редактирования в Excel

  11. Сейчас настройки все еще не применены, поэтому откройте окно «Макросы».
  12. Открытие окна с добавленными макросами для их применения в Excel

  13. В нем активируйте созданный нами макрос под названием «HyperSsylka».
  14. Применение созданного макроса для активации ссылок в Excel

  15. Вернитесь к таблице и убедитесь в том, что теперь все ссылки подсвечиваются должным образом.
  16. Успешное применение макроса для создания активных ссылок в Excel

Еще статьи по данной теме:

Помогла ли Вам статья?

Макрокод может быть очень полезным для нас при решении некоторых сложных задач в Excel, обычно мы можем выполнить его в Microsoft Visual Basic для приложений окно, нажав Run или нажатие F5 ключ. Но пробовали ли вы когда-нибудь запускать макросы, щелкая относительные гиперссылки на листе?

Запустите или выполните макрос, щелкнув гиперссылку с кодом VBA


стрелка синий правый пузырь Запустите или выполните макрос, щелкнув гиперссылку с кодом VBA

Нам может быть интересно запустить макрос, щелкнув гиперссылку в Excel, следующий метод может помочь вам выполнить эту задачу шаг за шагом:

1. Создайте гиперссылки, которые вы хотите использовать для выполнения кодов макросов. Щелкните ячейку и создайте гиперссылку для ссылки на себя, см. Снимок экрана:

макрос запуска документа из гиперссылки 1

2. Повторите вышеуказанный шаг, чтобы создать другие гиперссылки, которые вы хотите использовать, как показано на следующем снимке экрана:

макрос запуска документа из гиперссылки 2

3. Затем щелкните правой кнопкой мыши вкладку листа, содержащую гиперссылки, которые вы хотите использовать, и выберите Просмотреть код из контекстного меню, а в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустой модуль:

Код VBA: запускать коды макросов из гиперссылок:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    If Target.Range.Address = "$B$6" Then
        Call Macro1
        End If
         If Target.Range.Address = "$B$8" Then
        Call Macro2
         End If
End Sub

макрос запуска документа из гиперссылки 3

Внимание: В приведенном выше коде B6 и B8 содержат ли ячейки гиперссылки, которые вы хотите использовать, и Macro1 и Macro2 являются кодовыми названиями макросов, измените их по своему усмотрению.

4. Затем сохраните и закройте окно кода, с этого момента, когда вы щелкаете гиперссылку, конкретный код макроса будет выполняться сразу.


Статьи по теме:

Как запустить макрос при изменении значения ячейки в Excel?

Как запустить макрос на основе значения ячейки в Excel?

Как запустить макрос на основе значения, выбранного из раскрывающегося списка в Excel?

Как запустить макрос автоматически перед печатью в Excel?

Как запустить макрос, когда лист выбран из книги?


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (5)


Оценок пока нет. Оцените первым!

Понравилась статья? Поделить с друзьями:
  • Excel макрос открыть с помощью
  • Excel макрос открыть открытый файл
  • Excel макрос открываем книгу
  • Excel макрос отключить обновление экрана
  • Excel макрос определить ячейку