Спасибо большое.
Все прекрасно работает.
Автозамена гиперссылок в Excel?
Модератор: Naeel Maqsudov
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Тут еще выяснилась интересная штука, если ячейку с гиперссылкой скопировать, то
ActiveSheet.Hyperlinks.Count не изменяется. Т.е. в документе остается одна гиперссылка которая отображается в двух ячейках. (Естественно при исправление этой ссылки через ActiveSheet.Hyperlinks(i).Address=... влияет на обе ячейки)
Причем, прикол в том, что
ПерваяЯчейка.Hyperlinks.Count = 1 и ВтораяЯчейка.Hyperlinks.Count =1
Т.е. в каждой ячейке есть по ссылке, но общее количество прежнее
Теперь если отредактировоать гиперссылку во второй ячейке, то
ActiveSheet.Hyperlinks.Count увеличится; ПерваяЯчейка.Hyperlinks.Count = 1; а вот ВтораяЯчейка.Hyperlinks.Count = 2
Причем
ВтораяЯчейка.Hyperlinks(1) это старая гиперссылка, и изменение ни на что не влияет, а ВтораяЯчейка.Hyperlinks(2) это новая ссылка, которую и надо править.
Вот такая свистопляска с гиперссылками...
PS
Это проверено пока в EXCEL97
e-aleks, спасибо за вопрос. Очень познавательно
ActiveSheet.Hyperlinks.Count не изменяется. Т.е. в документе остается одна гиперссылка которая отображается в двух ячейках. (Естественно при исправление этой ссылки через ActiveSheet.Hyperlinks(i).Address=... влияет на обе ячейки)
Причем, прикол в том, что
ПерваяЯчейка.Hyperlinks.Count = 1 и ВтораяЯчейка.Hyperlinks.Count =1
Т.е. в каждой ячейке есть по ссылке, но общее количество прежнее
Теперь если отредактировоать гиперссылку во второй ячейке, то
ActiveSheet.Hyperlinks.Count увеличится; ПерваяЯчейка.Hyperlinks.Count = 1; а вот ВтораяЯчейка.Hyperlinks.Count = 2
Причем
ВтораяЯчейка.Hyperlinks(1) это старая гиперссылка, и изменение ни на что не влияет, а ВтораяЯчейка.Hyperlinks(2) это новая ссылка, которую и надо править.
Вот такая свистопляска с гиперссылками...
PS
Это проверено пока в EXCEL97
e-aleks, спасибо за вопрос. Очень познавательно

- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
При дальнейших правках ВтораяЯчейка.Hyperlinks.Count остается равным 2....Теперь если отредактировоать гиперссылку во второй ячейке, то
ActiveSheet.Hyperlinks.Count увеличится; ПерваяЯчейка.Hyperlinks.Count = 1; а вот ВтораяЯчейка.Hyperlinks.Count = 2
Мистика....
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Специально проверил в 2000.
При копировании ActiveSheet.Hyperlinks.Count увеличивается.
Selection.Hyperlinks.Count показывает реальное кол-во гиперссылок в выделенном диапазоне, как при создании, так и после копирования
При копировании ActiveSheet.Hyperlinks.Count увеличивается.
Selection.Hyperlinks.Count показывает реальное кол-во гиперссылок в выделенном диапазоне, как при создании, так и после копирования

А можно добавить в код пару строчек, чтобы в ячейке рядом отображалось еще название страницы.
Заранее спасибо.
Заранее спасибо.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Элементарно. Достаточно одной строки.
... некрасиво получилось... часто втречается lnk надо with использовать...
Код: Выделить всё
Sub qwe()
Dim lnk As Hyperlink
For Each lnk In ActiveSheet.Hyperlinks
lnk.Range.Next.Value = lnk.Address
lnk.Range.Next.Next.Value = lnk.Range.WorkSheet.Name
Next
End Sub