Bazaprogram.ru

Новости из мира ПК
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Макрос гиперссылки excel

Макрос гиперссылки excel

Вариант I. Для того, чтобы создать подсказку, которая будет автоматически появляться сразу после наведения курсора мышки на гиперссылку, достаточно просто создать комментарий (примечание) с необходимым текстом.

Примеры их создания, можно найти в соответствующем разделе и ответе, но если вкратце, то :Комментарий :

  • Плюсом этого варианта, является возможность изменения параметров форматирования подсказки. Например, Вы можете установить нужный шрифт и/или его размер.
  • Минусом, безусловно, станет отсутствие подсказки на экране, если пользователь вручную или программно установит опцию Сервис — Параметры — Вид — Примечания — Не отображать

    Актуально для MS Excel 2000(и старше)

    Вариант II. В этой версии уже можно обойтись без посредника, ибо у метода .Add об’екта Hyperlinks появился новый необязательный аргумент ScreenTipA у об’екта Hypelink появилось новое свойство ScreenTip , т.е. если гиперссылка уже существует :
    Ответ :Примечание : Если удаление гиперссылок должно происходить в активном рабочем листе, то просто замените ThisWorkbook.Worksheets(1) на ActiveSheet

    Комментарий :

  • Удаление гиперссылок не приводит к удалению текста гиперссылок. Если такое положение вещей недопустимо, то используйте перебор всех гиперссылок, только учтите, что гиперссылка может быть связана не только с ячейкой, но и с автофигурой/рисунком.
  • Если гиперссылок, созданных с использованием стандартной функции рабочего листа =ГИПЕРССЫЛКА() может быть довольно много и/или Вы используете событие Worksheet_Change() (или аналогичное событие рабочей книги, приложения), а также Volatile функции, то в этом случае, имеет смысл использовать свойства ScreenUpdating, EnableEvents, Calculation об’екта Application. Пример их использования можно увидеть здесь.

    Актуально для MS Excel 2010
    Согласно информации, опубликованной на официальном сайте, в этой версии у об’екта Range появился метод .ClearHyperlinks , который удаляет только гиперссылки, а текст и форматирование, оставляет без изменений.
    Ответ :

    Для того, чтобы создать кнопку — гиперссылку, можно использовать нижеприведённый код, который желательно разместить в стандартном модуле.Актуально только для MS Excel 2000, XP
    В этой версии, решить поставленную задачу, вполне можно и без использования макросов [FAQ] , но если создание такой кнопки это только часть задачи, где применение макросов действительно имеет смысл, то :Примечание :

  • — В качестве примера выбрана стандартная панель инструментов («Строка меню листа»)
  • — Вместо номера/индекса панели Вы можете использовать её имя, и заменить (1) на («Worksheet Menu Bar»)
  • — При использовании этих примеров убедитесь, что панель инструментов не защищена [FAQ125]
  • Ответ : Актуально для MS Excel 97, 2000, XPОсобенности MS Excel 2000, XP
    В этих версиях, заменить текст гиперссылки на её адрес, можно также используя необязательный аргумент TextToDisplay :Комментарий : Если рабочий лист + ячейки защищены, то Вы получите ошибку, которую можно избежать, если использовать данный совет [FAQ42] применительно к первому варианту.
  • Ответ : Актуально для MS Excel 97, 2000, XPКомментарий :
  • Для того, чтобы перебрать гиперссылки, созданные с помощью стандартной функции рабочего листа =ГИПЕРССЫЛКА(), используйте поиск (т.е. методы Find и FindNext )
  • Да, и обратите внимание на то, что свойства TextToDisplay и ScreenTip появились только в Excel 2000
  • Ответ : Актуально для MS Excel 97, 2000, XP

    Для того, чтобы с помощью VBA перебрать гиперссылки только в определённом диапазоне, можно воспользоваться предыдущим советом. Однако, если речь идёт о гиперссылках, которые связаны с графикой , то для того, чтобы определить, какие из фигур/рисунков «пересекаются» с нужным диапазоном, придётся использовать другой подход, например :
    Ответ : Актуально для MS Excel 97, 2000, XP

    Для того, чтобы с помощью VBA определить, связана ли ячейка с гиперссылкой, в т.ч. созданной с помощью стандартной функцией рабочего листа =ГИПЕРССЫЛКА() , можно использовать нижеопубликованную функцию.Комментарий : Если формула в ячейке скрыта (см. Формат — Ячейки — Защита — Скрыть формулы), а рабочий лист защищён (см. Сервис — Защита — Защитить лист), то возникнет ошибка.
    Ответ : Актуально для MS Excel 97, 2000, XP

    Предположим, что во всех рабочих листах — текущей рабочей книги, нам необходимо найти все гиперссылки, адреса которых содержат ненужные URL ссылки, в данном примере, это URL поисковиков, которые, к сожалению, либо прекратили своё существование, либо приостановили свою деятельность, и заменить найденный адрес и текст в ячейке, на «http://www.yandex.ru» и «Яндекс. Найдётся всё», соответственно.Комментарий :

  • Если рабочий лист + ячейки защищены, то при использовании Range.Value Вы получите ошибку, которую можно избежать, если использовать данный совет [FAQ42]
  • Для того, чтобы перебрать гиперссылки, созданные с помощью стандартной функции рабочего листа =ГИПЕРССЫЛКА(), используйте поиск (т.е. метод Find и FindNext )
  • Ответ : Актуально для MS Excel 97, 2000, XP

    Для того, чтобы получить перечень всех последних файлов и адресов электронной почты, которые были использованы при создании гиперссылок, можно использовать нижеопубликованный макрос. Обратите внимание на то, что его тестирование проводилось исключительно на машинах с OC Windows XP .Комментарий : Этот вариант не будет работать с гиперссылками, созданными с помощью стандартной функции рабочего листа =ГИПЕРССЫЛКА()
    Ответ : Актуально для MS Excel 97

    Если Вы работаете с Excel 97 , то возможно замечали, что в 8-й версии (в отличии от последующих) после ввода (или редактирования) текста, начинающегося с http:// , www. , ftp. , mailto: автоматического создания гиперссылок не происходит . Если такая ситуация неприемлема и Вам просто необходимо автоматизировать создание гиперссылок, причём только в определённом диапазоне, то выберите наиболее подходящий вариант, и разместите его в модуле нужного рабочего листа [FAQ31]

    Читать еще:  Меню вставка объект word

    Сокращённая версия (только ввод URL адресов, начинающихся с http:// или www.)
    Полная версия (включает также создание гиперссылок, типа info@mail.ru , mailto:admin@xxx.ru)

    Ответ : Актуально для MS Excel 97, 2000, XP

    Для того, чтобы с помощью VBA, получить или изменить путь/адрес, который Excel использует для создания относительных гиперссылок (и который можно увидеть/изменить вручную, если в меню Файл выбрать команду Свойства , затем выделить закладку Документ и работать с текстовым полем База гиперссылки ), достаточно применить следующий синтаксис, разумеется, указав нужную рабочую книгу .Комментарий : Обратите внимание на то, что в случае отсутствия базы гиперссылки, гиперссылки, типа, file:// могут создаваться относительно папки, в которой находится текущая книга (естественно, если она сохранена)
    Ответ : Актуально для MS Excel 2000, XP

    Для того, чтобы отловить клик мышкой (или нажатие клавиши ENTER в Excel 2000) по гиперссылке, а также определить адрес ячейки с этой гиперссылкой, можно использовать нижеприведённое событие, которое необходимо разместить в модуле нужного рабочего листа [FAQ31]А для того, чтобы отловить клик мышкой по фигуре/рисунку, которым назначена гиперссылка, можно вместо создания гиперссылки, создать макрос, который будет осуществлять переход по нужной ссылке и который необходимо будет назначить этой фигуре/рисунку.

    Если же об’екты-гиперссылки уже созданы и создавать имитации вручную уже затруднительно, то ниже опубликован макрос, который сохранит текст гиперссылки в виде замещающего web текста и назначит таким об’ектам процедуру MacrosHyperlinkКомментарий : Обратите внимание на то, что макрос перебирает гиперссылки активного рабочего листа и выполняет замену только в том случае, если об’ект + лист не защищёны . В противном случае, при удалении гиперссылки, возникнет ошибка, которой можно избежать, если воспользоваться этим советом.

    Разумеется, Вы вправе указать любой другой рабочий лист или перебрать все рабочие листы в нужной рабочей книге. В любом случае, нужно понимать, что активный лист используется в этом примере, только в качестве демонстрации.
    Ответ : Актуально для MS Excel XP(и старше)

    Для того, чтобы после ручного ввода интернет адреса или сетевого пути, не происходило автоматического создания гиперссылки, можно воспользоваться этим советом. Однако, если четвёртый вариант необходимо реализовать программно, то снять соответствующий «флажок», можно так :

    Ответ :

    Для того, чтобы создать гиперссылку на файл, если имеется только часть имени файла , то для всех версий Excel (и старых, до 2003 включительно, и новых, начиная с 2007) можно :

    1) для получения полного пути(имени), исходя из имени папки и частичного имени файла, использовать нижеопубликованную функцию
    2) создавать гиперссылку с помощью стандартной функции рабочего листа =ГИПЕРССЫЛКА()
    Пример вызова функции :

    Если же имя папки находится в ячейке A1 , а имя файла в ячейке B1 , то :

    Вставка гиперссылок на листы в Excel макрос

    Вставка гиперссылок на листы в Excel макрос

    Добрый день уважаемые читатели блога! После небольшого перерыва возобновляю работу по Excel. Вопросов накопилось довольно много — буду отвечать на них по очереди.

    Сегодня речь пойдёт о гиперссылках в Excel, точнее об их автоматической вставке на лист. Представим ситуацию, когда в нашей книге листов огромное количество, бухгалтерские расчёты, к примеру.

    Вставить вручную гиперссылки можно, пусть для этого и понадобится чуть больше времени. Обычно мы вставляем гиперссылки через вкладку «Вставка» и кнопку «Гиперссылка», а затем переходим на пункт «Место в документе».

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

    Вставим в наш документ новый модуль:

    1. Вкладка «Разработчик», блок кнопок «Код», кнопка «Visual Basic»;
    2. Далее «Insert» — > «Module».

    Поместим в поле кода следующий текст:

    Sub SheetNamesAsHyperLinks()
    Dim sheet As Worksheet
    Dim cell As Range
    With ActiveWorkbook
    ‘ Для каждого листа (имени) создадим свою ссылку
    For Each sheet In ActiveWorkbook.Worksheets
    Set cell = Worksheets(1).Cells(sheet.Index, 1)
    .Worksheets(1).Hyperlinks.Add Anchor:=cell, Address:=»», _
    SubAddress:=» » & sheet.Name & «!A1»
    cell.Formula = sheet.Name
    Next
    End With
    End Sub

    • у нас есть две переменные «sheet» и «cell», лист и ячейка;
    • «With activeWorkbook» — показывает, что макрос будет оперировать пространством всей книги;
    • « For Each sheet In ActiveWorkbook.Worksheets
      Set cell = Worksheets(1).Cells(sheet.Index, 1)
      .Worksheets(1).Hyperlinks.Add Anchor:=cell, Address:=»», _
      SubAddress:=» » & sheet.Name & «!A1» « » — для каждого листа в рабочей книге мы будем использовать первую ячейку (А1);
    • « cell.Formula = sheet.Name» — формула для макроса будет помещение в ячейку A1 названия первого листа книги, далее в A2 второго и т.д.

    Таким образом, мы экономим себе время на переходах, так как не отвлекаемся на нижнюю часть экрана с именами листов, а имеем список листов в виде гиперссылок. Понаблюдаем за результатами работы. Нажимаем сочетание клавиш ALT+F8 или переходим на вкладку «Разработчик», нажимаем кнопку «Макросы», у нас единственная строка «SheetNamesAsHyperLinks», нажимаем «Выполнить».

    Читать еще:  Что такое поля в word

    На листе «Оглавление» появится список всех существующих листов в нашей рабочей книге.

    Теперь мы можем просто щёлкать ячейку с именем листа для перехода.

    Если что-то было непонятно, посмотрите наше видео!

    Вас может заинтересовать урок — Поменять строки местами.

    Макрос гиперссылки excel

    ЗЫ Смотрите в какой раздел постите!
    Тему перенёс

    ЗЫ Смотрите в какой раздел постите!
    Тему перенёс Serge_007

    Яндекс-деньги:41001419691823 | WMR:126292472390

    Ответить

    ЗЫ Смотрите в какой раздел постите!
    Тему перенёс Автор — Serge_007
    Дата добавления — 13.05.2013 в 14:32

    nick7zmailДата: Понедельник, 13.05.2013, 16:57 | Сообщение № 3
    Serge_007Дата: Понедельник, 13.05.2013, 17:05 | Сообщение № 4

    Яндекс-деньги:41001419691823 | WMR:126292472390

    Ответить

    RANДата: Вторник, 14.05.2013, 00:33 | Сообщение № 5

    Это ты погорячился!

    Это ты погорячился!

    Быть или не быть, вот в чем загвоздка!

    Ответить

    Это ты погорячился!

    nick7zmailДата: Вторник, 14.05.2013, 06:33 | Сообщение № 6

    пример -в ячейках а1:а3 текст 1, 2, 3, файлы в папках Thisworkbook.Path111.txt Thisworkbook.Path122.doc Thisworkbook.Path223.jpg. нужно чтобы в ячейках а1:а3 были гиперссылки на эти файлы. т.е. использовать поиск по фс (желательно с выставлением папки поиска. точнее скорее всего это обязательный параметр для функции будет), скопировать путь файла, выставить его в гиперссылке.
    (для моего случая мне бы хватило варианта, если бы расширения были одинаковыми. но с разными расширениями интереснее)) — просто узнать на будущее)

    пример -в ячейках а1:а3 текст 1, 2, 3, файлы в папках Thisworkbook.Path111.txt Thisworkbook.Path122.doc Thisworkbook.Path223.jpg. нужно чтобы в ячейках а1:а3 были гиперссылки на эти файлы. т.е. использовать поиск по фс (желательно с выставлением папки поиска. точнее скорее всего это обязательный параметр для функции будет), скопировать путь файла, выставить его в гиперссылке.
    (для моего случая мне бы хватило варианта, если бы расширения были одинаковыми. но с разными расширениями интереснее)) — просто узнать на будущее) nick7zmail

    пример -в ячейках а1:а3 текст 1, 2, 3, файлы в папках Thisworkbook.Path111.txt Thisworkbook.Path122.doc Thisworkbook.Path223.jpg. нужно чтобы в ячейках а1:а3 были гиперссылки на эти файлы. т.е. использовать поиск по фс (желательно с выставлением папки поиска. точнее скорее всего это обязательный параметр для функции будет), скопировать путь файла, выставить его в гиперссылке.
    (для моего случая мне бы хватило варианта, если бы расширения были одинаковыми. но с разными расширениями интереснее)) — просто узнать на будущее) Автор — nick7zmail
    Дата добавления — 14.05.2013 в 06:33

    Serge_007Дата: Вторник, 14.05.2013, 07:06 | Сообщение № 7

    Яндекс-деньги:41001419691823 | WMR:126292472390

    Ответить

    nick7zmailДата: Вторник, 14.05.2013, 07:51 | Сообщение № 8
    Serge_007Дата: Вторник, 14.05.2013, 08:59 | Сообщение № 9

    Яндекс-деньги:41001419691823 | WMR:126292472390

    Ответить

    nick7zmailДата: Среда, 15.05.2013, 16:40 | Сообщение № 10

    Я их читал еще при создании темы, и все же в своих словах не нашел ничего не соответствующее. поэтому и прошу указать пункт который нарушен хотя бы.
    1) поиском пользовался. находил пару отлично сделанных макросов и файлов excel по созданию списка файлов. очень понравились, но не то (как я уже говорил хотелось бы и в первом макросе сравнение с фс добавить (т.е. смотрим что написано в ячейке > ищем, есть ли такой файл в папке > если есть, делаем на него гиперссылку).
    2) тема вполне конкретная, точнее не назовешь.
    3) задачи описаны полностью (для второго случая привел полнейшее разьяснение, первый в принципе решен, но см.выше, так было бы гораздо продуктивнее и интереснее)). кстати этот же макрос решил бы и 2ю задачу, т.к. глубина поиска задается)

    прикладывать файлы никакие не вижу смысла. т.к. ситуация описана в общем случае в полном объеме, и смоделировать ее не проблема. могу конечно приложить excel файлик с ячейками a1:a3 с надписями 1,2,3 и заархивированый кусок дерева фс, но это помоему бессмысленно.

    Дальнейший спор на эту тему я считаю — глупость и оффтоп. Зачем ссорится граждане форумчане =). Да и решения до сих пор нет.
    Как я уже говорил, пару лет назад находил макрос для 2003 офиса, и желающих увидеть его адаптацию под 2007+ (там он не работал, ибо убрали какую то функцию) было очень много судя по просьбам, комментам на форумах и тп. у меня это не получилось. и к сожалению повторно я его не смог найти. Но работал по той же схемке

    Я их читал еще при создании темы, и все же в своих словах не нашел ничего не соответствующее. поэтому и прошу указать пункт который нарушен хотя бы.
    1) поиском пользовался. находил пару отлично сделанных макросов и файлов excel по созданию списка файлов. очень понравились, но не то (как я уже говорил хотелось бы и в первом макросе сравнение с фс добавить (т.е. смотрим что написано в ячейке > ищем, есть ли такой файл в папке > если есть, делаем на него гиперссылку).
    2) тема вполне конкретная, точнее не назовешь.
    3) задачи описаны полностью (для второго случая привел полнейшее разьяснение, первый в принципе решен, но см.выше, так было бы гораздо продуктивнее и интереснее)). кстати этот же макрос решил бы и 2ю задачу, т.к. глубина поиска задается)

    прикладывать файлы никакие не вижу смысла. т.к. ситуация описана в общем случае в полном объеме, и смоделировать ее не проблема. могу конечно приложить excel файлик с ячейками a1:a3 с надписями 1,2,3 и заархивированый кусок дерева фс, но это помоему бессмысленно.

    Дальнейший спор на эту тему я считаю — глупость и оффтоп. Зачем ссорится граждане форумчане =). Да и решения до сих пор нет.
    Как я уже говорил, пару лет назад находил макрос для 2003 офиса, и желающих увидеть его адаптацию под 2007+ (там он не работал, ибо убрали какую то функцию) было очень много судя по просьбам, комментам на форумах и тп. у меня это не получилось. и к сожалению повторно я его не смог найти. Но работал по той же схемке

    Я их читал еще при создании темы, и все же в своих словах не нашел ничего не соответствующее. поэтому и прошу указать пункт который нарушен хотя бы.
    1) поиском пользовался. находил пару отлично сделанных макросов и файлов excel по созданию списка файлов. очень понравились, но не то (как я уже говорил хотелось бы и в первом макросе сравнение с фс добавить (т.е. смотрим что написано в ячейке > ищем, есть ли такой файл в папке > если есть, делаем на него гиперссылку).
    2) тема вполне конкретная, точнее не назовешь.
    3) задачи описаны полностью (для второго случая привел полнейшее разьяснение, первый в принципе решен, но см.выше, так было бы гораздо продуктивнее и интереснее)). кстати этот же макрос решил бы и 2ю задачу, т.к. глубина поиска задается)

    прикладывать файлы никакие не вижу смысла. т.к. ситуация описана в общем случае в полном объеме, и смоделировать ее не проблема. могу конечно приложить excel файлик с ячейками a1:a3 с надписями 1,2,3 и заархивированый кусок дерева фс, но это помоему бессмысленно.

    Дальнейший спор на эту тему я считаю — глупость и оффтоп. Зачем ссорится граждане форумчане =). Да и решения до сих пор нет.
    Как я уже говорил, пару лет назад находил макрос для 2003 офиса, и желающих увидеть его адаптацию под 2007+ (там он не работал, ибо убрали какую то функцию) было очень много судя по просьбам, комментам на форумах и тп. у меня это не получилось. и к сожалению повторно я его не смог найти. Но работал по той же схемке

    Замена гиперссылок с формулой =ГИПЕРССЫЛКА() на обычные

    Иногда требуется заменить на листе все гиперссылки, созданные при помощи функции листа =ГИПЕРССЫЛКА(), на обычные гиперссылки.

    В этом поможет VBA-функция FormulaHyperlink, и основанный на ней макрос:

    Выделите диапазон ячеек, и запустите этот макрос (не забыв добавить ниже его функцию FormulaHyperlink)

    А этот макрос заменит все гиперссылки в 3-м столбце активного листа:
    (пример — в прикреплённом файле)

    ВложениеРазмерЗагрузкиПоследняя загрузка
    Hyperlinks.xls29.5 КБ1531 год 47 недель назад
    • 15529 просмотров

    Комментарии

    какие ссылки? формульные?
    массив = range(«a1:g10»).formulaR1C1
    потом обрабатываете формулы для извлечения ссылки

    а если ссылки обычные, не формулой сделанные, — то никак

    А не подскажите как в массиве достать ссылки.
    Благодарю

    Нет, с массивом не работает
    Для простановки гиперссылок, необходимо перебирать ячейки в цикле
    От того, что вы в двумерном массиве обработаете формулы, — ссылки в ячейках не появятся же..

    Добрый день.
    А эта функция работает с двумерными массивами? Если да то как указать синтаксис без For Each cell In Selection? Спасибо

    Спасибо за ответ!
    Уже победил, вот так:

    Здравстсвуйте, Олег.
    Посмотрел ваш файл. А что там и как должно работать?

    Макрос обрабатывает ссылки только в третьем столбце.
    В этом столбце (в вашем файле) все гиперссылки — обычные, нет ни одной «формульной» гиперссылки
    (либо там изначально не было гиперссылок на формулах, либо макрос их уже обработал)

    А то, что полученные гиперссылки не работают — так они и не будут работать, ибо они взяты с сайта «как есть»,
    т.е. в относительном формате (например, ссылка /catalog/detail.php?SECTION_ > Адрес сайта не указан — потому ссылки не работают (и до обработки макросом не работали)

    Впечатление такое, что вам нужен совсем не этот макрос.
    А чего вы пытаетесь добиться в своем файле, — вы предпочли умолчать)

    Добрый день!
    Не срабатывает макрос. Подставил свои ссылки в ваш файл.
    narod.ru/disk/62923877001.c6801cb79c5de501b2f9e332399e55c7/Hyperlinks.xlsm.html

    Здравствуйте, Виталий.
    Способа перейти по такой гиперссылке без помощи мыша я не знаю (если, конечно, если не запустить встроенное средство Windows для управления курсором при помощи клавиатуры)

    Зато макросом — это можно запросто сделать:

    Ну или предварительно замените «формульные» гиперссылки на «обычные»:
    http://excelvba.ru/code/FormulaHyperlinks

    Здравствуйте!
    Меня зовут Виталий.
    Буте добры подскажите каким образом можно перейти по гиперссылке написанной формулой =ГИПЕРССЫЛКА() без помощи мышки , используя клавиатуру или макрос.

    Ссылка на основную публикацию
    Adblock
    detector