Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/гиперссылка созданная формулой не открывается макросом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
гиперссылка созданная формулой не открывается макросом
jjj9979 Дата: Вторник, 11.01.2022, 03:08 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте !
у меня есть макрос который открывает гиперссылку созданную через интерфейс экселя[vba]
Код
Sub Макрос1()
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub
[/vba]но гиперссылку созданную формулой этот макрос не открывает
Код
=ГИПЕРССЫЛКА(ES67)

подскажите ПОЖАЛУЙСТА что нужно дописать, чтобы открывались обе гиперссылки ?


Сообщение отредактировал Serge_007 - Вторник, 11.01.2022, 09:19
 
Ответить
СообщениеЗдравствуйте !
у меня есть макрос который открывает гиперссылку созданную через интерфейс экселя[vba]
Код
Sub Макрос1()
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
End Sub
[/vba]но гиперссылку созданную формулой этот макрос не открывает
Код
=ГИПЕРССЫЛКА(ES67)

подскажите ПОЖАЛУЙСТА что нужно дописать, чтобы открывались обе гиперссылки ?

Автор - jjj9979
Дата добавления - 11.01.2022 в 03:08
китин Дата: Вторник, 11.01.2022, 07:43 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация: 1078 ±
Замечаний: 0% ±

Excel 2007;2010;2016
jjj9979, - Прочитайте Правила форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 500 кб согласно п.3 Правил форума
- Оформите формулу тегами (в режиме правки поста выделите формулу и нажмите кнопку fx, пояснялка здесь)
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщениеjjj9979, - Прочитайте Правила форума
- Приложите файл с исходными данными и желаемым результатом (можно вручную) в формате Excel размером до 500 кб согласно п.3 Правил форума
- Оформите формулу тегами (в режиме правки поста выделите формулу и нажмите кнопку fx, пояснялка здесь)
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

Автор - китин
Дата добавления - 11.01.2022 в 07:43
bmv98rus Дата: Вторник, 11.01.2022, 07:51 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4115
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
пояснялка здесь
а кросс там :D


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
пояснялка здесь
а кросс там :D

Автор - bmv98rus
Дата добавления - 11.01.2022 в 07:51
jjj9979 Дата: Вторник, 11.01.2022, 13:05 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

[sub]
да, извините
прикрепил к этому сообщению файл с примером
в этом файле одна ссылка (верхняя) ОБЫЧНАЯ
другая (нижняя) сформированная через ФОРМУЛУ
и два макроса, один МОЙ, который я писал в первом сообщении,
а другой макрос из ФОРУМА,
НО нижнюю ссылку (сформированную формулой) не открывает ни один ни другой макрос
подскажите ПОЖАЛУЙСТА что дописать в макрос, чтобы нижняя ссылка этим макросом открывалась?
СПАСИБО
К сообщению приложен файл: 9395733.xlsm (17.1 Kb)
 
Ответить
Сообщение[sub]
да, извините
прикрепил к этому сообщению файл с примером
в этом файле одна ссылка (верхняя) ОБЫЧНАЯ
другая (нижняя) сформированная через ФОРМУЛУ
и два макроса, один МОЙ, который я писал в первом сообщении,
а другой макрос из ФОРУМА,
НО нижнюю ссылку (сформированную формулой) не открывает ни один ни другой макрос
подскажите ПОЖАЛУЙСТА что дописать в макрос, чтобы нижняя ссылка этим макросом открывалась?
СПАСИБО

Автор - jjj9979
Дата добавления - 11.01.2022 в 13:05
Nic70y Дата: Вторник, 11.01.2022, 14:47 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Sub u_18()
    With CreateObject("WScript.Shell")
        .Run Selection.Value
    End With
End Sub
[/vba]вдруг правильно


ЮMoney 41001841029809
 
Ответить
Сообщение[vba]
Код
Sub u_18()
    With CreateObject("WScript.Shell")
        .Run Selection.Value
    End With
End Sub
[/vba]вдруг правильно

Автор - Nic70y
Дата добавления - 11.01.2022 в 14:47
_Igor_61 Дата: Вторник, 11.01.2022, 20:31 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
В Вашем примере из файла в функции запишите так:
[vba]
Код
FormulaHyperlink = Range("A1")
[/vba]
У меня работает. Другой вопрос - как передавать в функцию Range. Через цикл? Через Select? Но это уже другая тема. Вы же формулой на какие-то ячейки ссылаетесь, отсюда и пляшите
P.S. Кросс пользы не принес :)
ООО, пробуйте:
[vba]
Код
Sub Макрос_с_форума()
   Url$ = ActiveCell.Value
   If Len(Url$) Then
      ThisWorkbook.FollowHyperlink Url$
   Else
      Url$ = ActiveCell.Value
   End If
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 = ActiveCell.Value
        End If
    End If
End Function
[/vba]
В сообщении сверху проще. И нафига я полез с кодом ТС-а разбираться? :) Он на Планете просит готовый файл...
К сообщению приложен файл: 9395733_1.xlsm (15.4 Kb)


Сообщение отредактировал _Igor_61 - Вторник, 11.01.2022, 21:38
 
Ответить
СообщениеВ Вашем примере из файла в функции запишите так:
[vba]
Код
FormulaHyperlink = Range("A1")
[/vba]
У меня работает. Другой вопрос - как передавать в функцию Range. Через цикл? Через Select? Но это уже другая тема. Вы же формулой на какие-то ячейки ссылаетесь, отсюда и пляшите
P.S. Кросс пользы не принес :)
ООО, пробуйте:
[vba]
Код
Sub Макрос_с_форума()
   Url$ = ActiveCell.Value
   If Len(Url$) Then
      ThisWorkbook.FollowHyperlink Url$
   Else
      Url$ = ActiveCell.Value
   End If
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 = ActiveCell.Value
        End If
    End If
End Function
[/vba]
В сообщении сверху проще. И нафига я полез с кодом ТС-а разбираться? :) Он на Планете просит готовый файл...

Автор - _Igor_61
Дата добавления - 11.01.2022 в 20:31
jjj9979 Дата: Вторник, 11.01.2022, 22:46 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

У меня работает.


Игорь (_Igor_61) Вы молодец спасибо БОЛЬШОЕ
всё работает
вы на другой форум написали тоже (но тот ваш ответ я только что увидел, то есть уже после того как отработал ваш ответ с готовым макросом на этом форуме)
СПАСИБО ещё раз Игорь СПАСИБО
 
Ответить
Сообщение
У меня работает.


Игорь (_Igor_61) Вы молодец спасибо БОЛЬШОЕ
всё работает
вы на другой форум написали тоже (но тот ваш ответ я только что увидел, то есть уже после того как отработал ваш ответ с готовым макросом на этом форуме)
СПАСИБО ещё раз Игорь СПАСИБО

Автор - jjj9979
Дата добавления - 11.01.2022 в 22:46
Nic70y Дата: Среда, 12.01.2022, 12:09 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
честно говоря так и не понял для чего там удф.
в макрос (сооб. №5) добавить обработчик ошибки и все.

а так для разнообразия (может кому пригодится) не оптимизировал
[vba]
Код
Sub u_18()
    On Error Resume Next
    b = Selection.Formula
    c = Selection.Value
    i = InStr(b, "=HYPERLINK(")
    If i > 0 Then
        d = Len(b) - 1
        For e = 2 To d
            f = Right(Left(b, d), e)
            g = Application.IfError(Evaluate(f), "")
            If g = c Then Exit For
        Next
        If e < d - 12 Then
            h = Evaluate(Mid(b, 12, d - 12 - e))
        Else
            h = Evaluate(Mid(b, 12, d - 11))
        End If
    Else
        h = c
    End If
    With CreateObject("WScript.Shell")
        .Run h
    End With
End Sub
[/vba]
К сообщению приложен файл: link.xlsm (21.0 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениечестно говоря так и не понял для чего там удф.
в макрос (сооб. №5) добавить обработчик ошибки и все.

а так для разнообразия (может кому пригодится) не оптимизировал
[vba]
Код
Sub u_18()
    On Error Resume Next
    b = Selection.Formula
    c = Selection.Value
    i = InStr(b, "=HYPERLINK(")
    If i > 0 Then
        d = Len(b) - 1
        For e = 2 To d
            f = Right(Left(b, d), e)
            g = Application.IfError(Evaluate(f), "")
            If g = c Then Exit For
        Next
        If e < d - 12 Then
            h = Evaluate(Mid(b, 12, d - 12 - e))
        Else
            h = Evaluate(Mid(b, 12, d - 11))
        End If
    Else
        h = c
    End If
    With CreateObject("WScript.Shell")
        .Run h
    End With
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 12.01.2022 в 12:09
_Igor_61 Дата: Четверг, 13.01.2022, 18:57 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
не понял для чего там удф

Наверное просто кусочек из какого-то проекта, где УДФ задействуется в разных макросах. Я вообще об этом даже не думал, просто заменил формулу на Value, посмотрел - работает :).
Nic70y, Ваш макрос в три строчки и без разнообразия работает отлично, скорее всего я не все знаю, т.к. не профи, обязательны ли эти проверки если Value и так работает и с ссылкой и с формулой? Или есть какие-то подводные камни в этом?
 
Ответить
Сообщение
не понял для чего там удф

Наверное просто кусочек из какого-то проекта, где УДФ задействуется в разных макросах. Я вообще об этом даже не думал, просто заменил формулу на Value, посмотрел - работает :).
Nic70y, Ваш макрос в три строчки и без разнообразия работает отлично, скорее всего я не все знаю, т.к. не профи, обязательны ли эти проверки если Value и так работает и с ссылкой и с формулой? Или есть какие-то подводные камни в этом?

Автор - _Igor_61
Дата добавления - 13.01.2022 в 18:57
Nic70y Дата: Пятница, 14.01.2022, 07:53 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
обязательны ли эти проверки
ну value может быть и не ссылкой вовсе.


ЮMoney 41001841029809
 
Ответить
Сообщение
обязательны ли эти проверки
ну value может быть и не ссылкой вовсе.

Автор - Nic70y
Дата добавления - 14.01.2022 в 07:53
_Igor_61 Дата: Пятница, 14.01.2022, 18:20 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 504
Репутация: 90 ±
Замечаний: 0% ±

Excel 2007
Да, невнимательно смотрел, проглядел:
в макрос (сооб. №5) добавить обработчик ошибки и все.

On Error Resume Next там вполне хватит.
Со Старым Новым годом!
 
Ответить
СообщениеДа, невнимательно смотрел, проглядел:
в макрос (сооб. №5) добавить обработчик ошибки и все.

On Error Resume Next там вполне хватит.
Со Старым Новым годом!

Автор - _Igor_61
Дата добавления - 14.01.2022 в 18:20
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!