Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Неправильный путь в назначенной макросом гиперссылке - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Неправильный путь в назначенной макросом гиперссылке
dude Дата: Воскресенье, 02.07.2017, 17:59 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 193
Репутация: 28 ±
Замечаний: 0% ±

2016
Добрый день!
Макрос по изменению ячеек листа: при вводе имени файла автоматом назначается гипер на файл. в макросе есть проверка на существование пути к файлу, но гипер назначается по другому пути. Прошу помочь исправить ошибку.
К сообщению приложен файл: __1.xlsb (23.6 Kb)
 
Ответить
СообщениеДобрый день!
Макрос по изменению ячеек листа: при вводе имени файла автоматом назначается гипер на файл. в макросе есть проверка на существование пути к файлу, но гипер назначается по другому пути. Прошу помочь исправить ошибку.

Автор - dude
Дата добавления - 02.07.2017 в 17:59
_Boroda_ Дата: Воскресенье, 02.07.2017, 19:09 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
А так?
[vba]
Код
ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:=SourceFolder & sss, TextToDisplay:=ss
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА так?
[vba]
Код
ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:=SourceFolder & sss, TextToDisplay:=ss
[/vba]

Автор - _Boroda_
Дата добавления - 02.07.2017 в 19:09
dude Дата: Воскресенье, 02.07.2017, 19:22 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 193
Репутация: 28 ±
Замечаний: 0% ±

2016
В этом случае пролетает проверка существования пути в коде.
Есть подозрение, что это какие-то фантомы в Таблице, но я пробовал полностью очищать проблемный диапазон, удалять его. Не помогает


Сообщение отредактировал dude - Воскресенье, 02.07.2017, 19:24
 
Ответить
СообщениеВ этом случае пролетает проверка существования пути в коде.
Есть подозрение, что это какие-то фантомы в Таблице, но я пробовал полностью очищать проблемный диапазон, удалять его. Не помогает

Автор - dude
Дата добавления - 02.07.2017 в 19:22
_Boroda_ Дата: Воскресенье, 02.07.2017, 19:27 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
В этом случае пролетает проверка существования пути в коде.

Почему? Только если Вы ее сотрете. А Вы не стирайте
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ss As String
Dim sss As String
Dim SourceFolder As String
Dim iFileName As String
SourceFolder = Range("O1").Value '"D:\YandexDisk\Сканер\Андрей\"   .full path
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("O3:S1000000")) Is Nothing Then
If Not IsEmpty(Target) Then
ss = Target.Value & ".*"
iFileName = SourceFolder & ss
     sss = Dir(iFileName)
     If sss = "" Then MsgBox "Неправильное имя файла": Exit Sub
                Application.EnableEvents = False

ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:=SourceFolder & sss, TextToDisplay:=ss
'Target = SourceFolder
                Application.EnableEvents = True
Else
Target.Hyperlinks.Delete
End If
End If
End Sub

[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
В этом случае пролетает проверка существования пути в коде.

Почему? Только если Вы ее сотрете. А Вы не стирайте
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ss As String
Dim sss As String
Dim SourceFolder As String
Dim iFileName As String
SourceFolder = Range("O1").Value '"D:\YandexDisk\Сканер\Андрей\"   .full path
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("O3:S1000000")) Is Nothing Then
If Not IsEmpty(Target) Then
ss = Target.Value & ".*"
iFileName = SourceFolder & ss
     sss = Dir(iFileName)
     If sss = "" Then MsgBox "Неправильное имя файла": Exit Sub
                Application.EnableEvents = False

ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:=SourceFolder & sss, TextToDisplay:=ss
'Target = SourceFolder
                Application.EnableEvents = True
Else
Target.Hyperlinks.Delete
End If
End If
End Sub

[/vba]

Автор - _Boroda_
Дата добавления - 02.07.2017 в 19:27
dude Дата: Воскресенье, 02.07.2017, 19:33 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 193
Репутация: 28 ±
Замечаний: 0% ±

2016
Так работает. Спасибо!
только, наверное, так SourceFolder & ss
 
Ответить
СообщениеТак работает. Спасибо!
только, наверное, так SourceFolder & ss

Автор - dude
Дата добавления - 02.07.2017 в 19:33
_Boroda_ Дата: Воскресенье, 02.07.2017, 19:36 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 17006
Репутация: 6667 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
только, наверное, так SourceFolder & ss

Вам же никто не мешает попробовать


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
только, наверное, так SourceFolder & ss

Вам же никто не мешает попробовать

Автор - _Boroda_
Дата добавления - 02.07.2017 в 19:36
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!