У Эрика есть общая рабочая книга, в которой содержится база данных примерно из 3500 записей. Две ячейки в каждой записи содержат адрес электронной почты и URL-адрес. Когда в базу данных добавляется новая запись, адрес электронной почты и URL-адрес отображаются как обычный текст, а не как гиперссылки. Чтобы превратить их в гиперссылки, Эрик должен отменить общий доступ к книге, внести изменения, а затем повторно предоставить доступ к книге. Эрик подумал, есть ли более простой способ справиться с этой ситуацией.

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

Например, если URL-адрес введен в ячейку E2, вы можете использовать следующую формулу в другой ячейке:

=HYPERLINK(E2, E2)

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

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

Sub AddHyperlink()

Dim cell As Range

Application.DisplayAlerts = False

' Unshare the Workbook     If ActiveWorkbook.MultiUserEditing Then         ActiveWorkbook.ExclusiveAccess     End If

' Change address in cell to a hyperlink.

If ActiveCell = "" Then         ActiveCell.Hyperlinks.Delete     Else         For Each cell In Intersect(Selection, _           Selection.SpecialCells(xlConstants, xlTextValues))

With Worksheets(1)

.Hyperlinks.Add Anchor:=cell, _                   Address:=cell.Value, _                   ScreenTip:=cell.Value, _                   TextToDisplay:=cell.Value             End With         Next cell     End If

' Reshare the Workbook     If Not ActiveWorkbook.MultiUserEditing Then         ActiveWorkbook.SaveAs _           Filename:=ActiveWorkbook.FullName, _           AccessMode:=xlShared     End If End Sub

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (3155) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Converting_to_Hyperlinks_in_a_Shared_Workbook [Преобразование в гиперссылки в общей книге].