Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Полный адрес из .Hyperlinks

258
09 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Столкнулся тут вот с какой проблемой:

Добавляю я в ячейку листа Excel - Hyperlinks (гиперссылку):

 
Код:
xlWrsh.Hyperlinks.Add Anchor:=xlWrsh.Cells(lRow, 9), Address:=strFileName, TextToDisplay:="ссылка на мой файл"


в переменной strFileName указан полный путь к файлу.

Когда же потом обращаюсь, чтобы считать этот адрес, то получаю не полный путь к файлу, а какой-то относительный (обычно относительно файла xls, а если файл лежт изначально в другой директории и показать его путь относительно файла xls невозможно, то тогда он пишет так "..\Мои документы\1.doc")

Считываю я адрес так:
 
Код:
strFileName = Cells(Target.Row, 9).Hyperlinks.Item(1).Address

т.е. через свойство Address. Облазил все доступные свойства и нифига не нашел где он хранит полный путь и куда его девает. Причем когда наводишь курсор на ячейку с гиперссылкой, то он показывает полный путь, типа - "file:///C:\ ну и т.д."

ВОПРОС: кто знает как достать обратно полный адрес из гиперссылки

P.S. пока я не начал мудрить с этими относительными путями...не нравится мне просто такой подход
266
09 декабря 2003 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by SergeySV
Столкнулся тут вот с какой проблемой:

Добавляю я в ячейку листа Excel - Hyperlinks (гиперссылку):

 
Код:
xlWrsh.Hyperlinks.Add Anchor:=xlWrsh.Cells(lRow, 9), Address:=strFileName, TextToDisplay:="ссылка на мой файл"


в переменной strFileName указан полный путь к файлу.

Когда же потом обращаюсь, чтобы считать этот адрес, то получаю не полный путь к файлу, а какой-то относительный (обычно относительно файла xls, а если файл лежт изначально в другой директории и показать его путь относительно файла xls невозможно, то тогда он пишет так "..\Мои документы\1.doc")

Считываю я адрес так:
 
Код:
strFileName = Cells(Target.Row, 9).Hyperlinks.Item(1).Address

т.е. через свойство Address. Облазил все доступные свойства и нифига не нашел где он хранит полный путь и куда его девает. Причем когда наводишь курсор на ячейку с гиперссылкой, то он показывает полный путь, типа - "file:///C:\ ну и т.д."

ВОПРОС: кто знает как достать обратно полный адрес из гиперссылки

P.S. пока я не начал мудрить с этими относительными путями...не нравится мне просто такой подход


А .Value что возвращает?

266
09 декабря 2003 года
mhaturov
901 / / 23.10.2003
Цитата:
Originally posted by mhaturov

А .Value что возвращает?


Кстати, у меня код:
Range("A2").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="\\D:\Ìîè äîêóìåíòû" _
, TextToDisplay:="Ìîè äîêóìåíòû"
Range("A3").Select
' Range("A3").Text = Range("A2").Hyperlinks.Item(1).SubAddress
Range("A4").Value = Range("A2").Hyperlinks.Item(1).Address
Range("A5").Value = Range("A2").Hyperlinks.Item(1).Name
Range("A6").Value = Range("A2").Hyperlinks.Item(1).ScreenTip
Range("A7").Value = Range("A2").Value
Range("A8").Value = Range("A2").Value2
вернул всё, как надо (Office 2000):???:

267
09 декабря 2003 года
Cutty Sark
1.2K / / 17.10.2002
Серёж, ты удивишься, но у меня все работает:

Код:
Sub M1()

    Range("B2").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="CodeCopySheets.xls"
   
    Range("B3").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        "C:\Sergey\Codenet\CodeToWord.xls"
End Sub

Sub M2()
    MsgBox Range("B2").Hyperlinks(1).Address
    MsgBox Range("B3").Hyperlinks(1).Address
End Sub


Одна возвращает полный путь, вторая - относительный.
258
09 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark
Серёж, ты удивишься, но у меня все работает:

Код:
Sub M1()

    Range("B2").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="CodeCopySheets.xls"
   
    Range("B3").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        "C:\Sergey\Codenet\CodeToWord.xls"
End Sub

Sub M2()
    MsgBox Range("B2").Hyperlinks(1).Address
    MsgBox Range("B3").Hyperlinks(1).Address
End Sub


Одна возвращает полный путь, вторая - относительный.



что-то я не догоняю...

хмм, надеюсь полный путь возвращает ячейка B3?!?

ща еще у себя поэкспериментирую...

258
09 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by mhaturov

Кстати, у меня код:
Range("A2").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="\\D:\Ìîè äîêóìåíòû" _
, TextToDisplay:="Ìîè äîêóìåíòû"
Range("A3").Select
' Range("A3").Text = Range("A2").Hyperlinks.Item(1).SubAddress
Range("A4").Value = Range("A2").Hyperlinks.Item(1).Address
Range("A5").Value = Range("A2").Hyperlinks.Item(1).Name
Range("A6").Value = Range("A2").Hyperlinks.Item(1).ScreenTip
Range("A7").Value = Range("A2").Value
Range("A8").Value = Range("A2").Value2
вернул всё, как надо (Office 2000):???:



.Value = мне возвращает, то что я забил в TextToDisplay

:(

258
09 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark
Серёж, ты удивишься, но у меня все работает:

Код:
Sub M1()

    Range("B2").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="CodeCopySheets.xls"
   
    Range("B3").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        "C:\Sergey\Codenet\CodeToWord.xls"
End Sub

Sub M2()
    MsgBox Range("B2").Hyperlinks(1).Address
    MsgBox Range("B3").Hyperlinks(1).Address
End Sub


Одна возвращает полный путь, вторая - относительный.



Кажется я понял в чем прикол:
Твой пример у меня тоже полный путь возвращает, НО попробуй добавить в метод Add следующее переменную - TextToDisplay:="просто текст" - вот тут чудеса и начинаются.

Т.е. мое подозрение, что Address хорошо работает токо при совпадении TextToDisplay и Address, а вот при их различии начинаются выкрутасы

267
09 декабря 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by SergeySV


что-то я не догоняю...

хмм, надеюсь полный путь возвращает ячейка B3?!?

ща еще у себя поэкспериментирую...



И та, и другая возвращают в точности то, что я "зафигачил" им в Address.

(разумеется, всё это на 97-м... :} )

267
09 декабря 2003 года
Cutty Sark
1.2K / / 17.10.2002
В 97-м нет TextToDisplay.
Но вот так ничего не испортилось:
 
Код:
Range("B2").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="CodeCopySheets.xls"
    Selection.Value = "La-la"
    Range("B3").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
        "C:\Sergey\Codenet\CodeToWord.xls"
    Selection.Value = "La-la"
258
09 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark


И та, и другая возвращают в точности то, что я "зафигачил" им в Address.

(разумеется, всё это на 97-м... :} )



А в 97 перемн. TextToDisplay в методе Add есть?

Все я убежал, у отца сеня день рождения, так что продолжим завтра, ок?!

258
09 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by SergeySV


А в 97 перемн. TextToDisplay в методе Add есть?

Все я убежал, у отца сеня день рождения, так что продолжим завтра, ок?!



Значит ла-ла говоришь, надо будет попробовать

267
09 декабря 2003 года
Cutty Sark
1.2K / / 17.10.2002
Попробовал на 2000-м с TextToDisplay. ВСЁ РАБОТАЕТ!!!
258
10 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark
Попробовал на 2000-м с TextToDisplay. ВСЁ РАБОТАЕТ!!!



Бред какой-то, добавление гиперссылки через код в самом Excel у меня тоже работает, а вот то что я добавлял из Outlook связываясь с листом Excel? получается вот так...

посмотри файл, там эти хитрые ссылки, чтобы посмотреть адрес надо два раз щелкнуть на соседней ячейке с текстом - "In the Queue" (сама ссылка в столб. - I ). Чуть ниже висит кнопка для добавления гиперссылки через код из самого Excel..... так сказать нижмите и увидите разницу..

267
10 декабря 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by SergeySV


Бред какой-то, добавление гиперссылки через код в самом Excel у меня тоже работает, а вот то что я добавлял из Outlook связываясь с листом Excel? получается вот так...

посмотри файл, там эти хитрые ссылки, чтобы посмотреть адрес надо два раз щелкнуть на соседней ячейке с текстом - "In the Queue" (сама ссылка в столб. - I ). Чуть ниже висит кнопка для добавления гиперссылки через код из самого Excel..... так сказать нижмите и увидите разницу..



Ну я-то вижу уже результат работы твоих макросов. Внешне это выглядит, как будто ты добавлял относительную ссылку, а не абсолютную. А почему у тебя там косая черта "не в ту сторону"?

258
10 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark


Ну я-то вижу уже результат работы твоих макросов. Внешне это выглядит, как будто ты добавлял относительную ссылку, а не абсолютную. А почему у тебя там косая черта "не в ту сторону"?



Я понимаю, что работу, но как вообще теоретически возможно добавление ссылки на файл, чтобы он хранил полный путь (неизвестно там где у себя, но показывает его при наведении на ячейку), а через свойство адрес возвращал токо относительный путь?

Кстати добавление гиперссылки с совпадающим адресом в свойстве TextToDisplay все равно возвращает в Address относит. путь

Видимо пора начинать бегать с бубном вокруг компьютера... :(

Пока вывернулся так, просто сделал два столбца: в одном имя файла, а в другом гиперссылка на этот файл и в свойстве TextToDisplay забивается полный путь и считывается уже путь тупо через Cells().Value

267
10 декабря 2003 года
Cutty Sark
1.2K / / 17.10.2002
Я не очень чётко себе представляю, чего бы ты хотел добиться в идеале...
258
10 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark
Я не очень чётко себе представляю, чего бы ты хотел добиться в идеале...



В идеале просто в ячейке высвечивается имя файла, в виде гиперссылки на этот файл на диске.

- это все сделано, проблемы начинаются потом, когда надо считать полный адрес этого файла, чтобы до него добраться и переложить в другую папку, все это разумеется программно

не думал я что тут меня может ожидать подстава...

267
10 декабря 2003 года
Cutty Sark
1.2K / / 17.10.2002
А почему косая черта не в ту сторону?
258
10 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark
А почему косая черта не в ту сторону?



Ты не поверишь, сам сижу и удивляюсь... честное слово это не я, в всплывающей подсказке указывается правильный путь и файл нормально вызывается

267
10 декабря 2003 года
Cutty Sark
1.2K / / 17.10.2002
Цитата:
Originally posted by SergeySV


Ты не поверишь, сам сижу и удивляюсь... честное слово это не я, в всплывающей подсказке указывается правильный путь и файл нормально вызывается



Наверное, в этом и есть корень всех причин. Надо докопаться, откуда это все берётся. Может, нужен сервиспак на аутлюк?

258
10 декабря 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark


Наверное, в этом и есть корень всех причин. Надо докопаться, откуда это все берётся. Может, нужен сервиспак на аутлюк?



Может, у меня стоит OfficeXp+SP1, может конечно во втором все поправили уже...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог