Страницы: 1
RSS
Замена гиперссылки на формулу.
 
Здравствуйте.
Я в работе создал список договоров и в поле с номером создал гиперссылку на сам договор в электронном виде. Но через какое-то время гиперссылки сбились и стали указывать на временную папку в "Моих документах". Я решил поменять гиперссылки на формулы, что в принципе руками неплохо получается. Но так как список договоров довольно приличный, я решил автоматизировать это действие и написал макрос. Вот так он выгладит:

Код
Sub Макрос8()
' Замена геперссылки на формулу
Dim Имя As String, ИмяФайла As String
Dim ЧастиАдреса$()

НомерДоговора = ActiveCell
ЧастиАдреса = Split(ActiveCell.Hyperlinks(1).Address, "\")

ИмяФайла = ЧастиАдреса(UBound(ЧастиАдреса))

ТекстФормулы = "=ГИПЕРССЫЛКА(СЦЕПИТЬ(ПапкаДоговоров;""\"";""" & ИмяФайла & """);""" & НомерДоговора & """)"
ActiveCell.Formula = ТекстФормулы

End Sub
 
Папка договоров - это путь к папке, в которой хранятся договора, прописанный в Диспетчере имен. Сравнивая получающуюся формулу с той, которую я ввожу вручную мне кажется, что они одинаковые.
Однако, макрос выдает ошибку:

Может подскажите, где моя ошибка и как ее можно исправить?
Заранее благодарен.
 
Код
ActiveCell.FormulaLocal = ТекстФормулы

Либо
Код
ТекстФормулы = "=HYPERLINK(CONCATENATE(ПапкаДоговоров,""\"",""" & ИмяФайла & """),""" & НомерДоговора & """)"
ActiveCell.Formula = ТекстФормулы
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Гениально!
Спасибо большое за помощь! Я так долго с этим бился, а решение оказалось таким простым...
Страницы: 1
Наверх