Страницы: 1
RSS
Открытие гиперссылки с помощью макроса
 
Здравствуйте! Подскажите, пожалуйста, как с помощью макроса можно открыть гиперссылку такого вида:
Код
=ГИПЕРССЫЛКА(".\"&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
 
Обычные гиперссылки открываются, а формулы-гиперссылки - нет.
Заранее благодарен!
 
Как получить адрес гиперссылки из ячейки
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Вроде всё сделал как описано в статье, но не работает почему-то. Даже в этом примере, который в статье, не могу макросом открыть гиперссылку созданную формулой, а обычная открывается...
Может можно как-то по другому сделать? Суть такова, что мне нужно открывать гиперссылки созданные формулой клавиатурой, не важно каким сочетанием или комбинацией клавиш.
Изменено: axis86 - 13.04.2013 22:35:50
 
Это смотрели?
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
 
Я не понимаю, в чем сложности применения кода по данной мной ссылке? Добавили функцию к себе и переходите так:

Код
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)
и как у тебя (вообще не применяется)

Потому что у него ссылка составная - из нескольких ячеек собирается.
 
Цитата
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 эклесе сделать чтобы картинки из ссылок открывались в стандартной программе просмотра изображений, а не в ИЕ? Уже весь интернет перерыл, ничего не помогает  :(
Уже решил проблему самостоятельно  :)
Еще раз, Большой Спасибо!
Изменено: axis86 - 15.04.2013 12:05:49
 
axis86, а в данном случае цитирование обязательно? Не пробовали ПРОСТО ответить?
Страницы: 1
Наверх