Страница 2 из 2
Добавлено: 23 дек 2004, 11:52
e-aleks
Спасибо большое.
Все прекрасно работает.
Добавлено: 23 дек 2004, 14:22
Naeel Maqsudov
Тут еще выяснилась интересная штука, если ячейку с гиперссылкой скопировать, то
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, спасибо за вопрос. Очень познавательно

Добавлено: 23 дек 2004, 14:26
Naeel Maqsudov
Теперь если отредактировоать гиперссылку во второй ячейке, то
ActiveSheet.Hyperlinks.Count увеличится; ПерваяЯчейка.Hyperlinks.Count = 1; а вот ВтораяЯчейка.Hyperlinks.Count = 2
При дальнейших правках ВтораяЯчейка.Hyperlinks.Count остается равным 2....
Мистика....
Добавлено: 23 дек 2004, 16:39
Игорь Акопян
Специально проверил в 2000.
При копировании ActiveSheet.Hyperlinks.Count увеличивается.
Selection.Hyperlinks.Count показывает реальное кол-во гиперссылок в выделенном диапазоне, как при создании, так и после копирования
В продолжении темы.
Добавлено: 21 янв 2005, 15:50
e-aleks
А можно добавить в код пару строчек, чтобы в ячейке рядом отображалось еще название страницы.
Заранее спасибо.
Добавлено: 01 фев 2005, 22:02
Naeel Maqsudov
Элементарно. Достаточно одной строки.
Код: Выделить всё
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
... некрасиво получилось... часто втречается lnk надо with использовать...
Добавлено: 02 фев 2005, 07:15
e-aleks
Спасибо, большое.