Страницы: 1
RSS
Открытие гиперссылок на файлы - определенной программой
 
Добрый день, уважаемые специалисты.
Помогите решить вопрос.

На листе в столбце E6:E15 - располагаются гиперссылки на файлы.
Рядом - в ячейку I4 вписан адрес той программы, в которой я хочу эти файлы открыть при щелчках по гиперссылкам.

Как заставить эти ссылки открываться - по щелчку по гиперссылкам - именно в той программе, адрес которой указан в ячейке I4 ?
 
А программой по умолчанию не катит?
Код
Shell "explorer.exe C:\Users\Sano\Downloads\435345.rar", vbNormalFocus
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, можно спросить - что делает эта строчка кода, которую вы привели ?
(Тут какой-то архив rar )
 
Это просто пример. Вместо этого адреса указываете свой к файлу и всё
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Alemox, я не совсем понял.
Где в вашем коде - связь с ячейкой I4 - куда вписан адрес той программы, которой надо открывать файлы ?
 
Добрый день, уважаемые специалисты.
Помогите решить вопрос.

На листе в столбце E6:E15 - располагаются гиперссылки на файлы.
Рядом - в ячейку I4 вписан адрес той программы, в которой я хочу эти файлы открыть при щелчках по гиперссылкам.

Как заставить эти ссылки открываться - по щелчку по гиперссылкам - именно в той программе, адрес которой указан в ячейке I4 ?
 
Такой код вполне должен сработать:
Код
Sub OpenFileHyp()
    Shell Range("I4").Value & " " & Range("E6").Value, vbNormalFocus
End Sub
Но при щелчке на гиперссылку это сделать чуть сложнее. Судя по всему владение VBA у Вас на уровне "что такое VBA?" :)
Для пробы. Правая кнопка мыши на ярлыке листа с гиперссылками -Исходный текст(или Посмотреть код). Вставляете код ниже:
Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Dim rCAddr As Range
    Set rCAddr = Target.Parent
    Shell rCAddr.Parent.Range("I4").Value & " " & rCAddr.Value, vbNormalFocus
End Sub
но и здесь есть проблемы.
При таком подходе будут открываться файлы еще и в программе по умолчанию. Поэтому как вариант ссылки можно назначать так: выбрали файл, вставили путь до него в ячейку. И этой ячейке назначили гиперссылку на ту ячейку, в которой она записана. Тогда код будет срабатывать и открывать нужное приложение, а сама гиперссылка не будет открывать.
Плюс далеко не факт, что каждая из указанных Вами программ поддерживает ключи и параметры командной строки.
Изменено: The_Prist - 13.10.2017 19:09:41
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, что-то не получается.
Я выбираю файл, прописываю путь до него в ячейку, присваиваю ячейке ссылку - получается на саму себя.
Потому что ссылка с адресом на файл - находится в ней.
Но тогда и текст в гиперссылке меняется.
 
Цитата
The_Prist написал:
И этой ячейке назначили гиперссылку на ту ячейку, в которой она записана.
Я это не совсем понимаю.
Назначить ячейке - ссылку на саму себя ?
 
The_Prist, так... все.. Я понял вашу хитрую мысль с дополнительными гиперссылками.
Вроде бы - работает как надо.
Спасибо за дельный совет.
 
Добрый день, Уважаемые специалисты!
Прошу помочь с решением одного вопроса.

Есть Код:

Код
Sub Создать()
Dim p
p = "путь к файловому ресурсу" & Range("F9") 

If Dir(p, vbDirectory) = "" Then MkDir p
On Error Resume Next
For Each oCell In Range([A3], [A9].End(xlUp))
If Not IsEmpty(oCell) Then MkDir p & "\" & oCell
Next
ActiveSheet.Hyperlinks.Add Anchor:=Range("F18"), Address:=p, _
    TextToDisplay:=p
End Sub

Который создает папку (и подпапки в этой папке) на файловом ресурсе, и записывает гиперссылку в ячейку F18. (в ячейке F9 берется название для создания папки, в ячейке F4 берется номер документа).
Далее я конвертирую лист Excel в PDF следующим кодом:
Код
Sub Сохранить1()
ChDir "путь к файловому ресурсу" & Range("F9")
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="путь к файловому ресурсу" & Range("F9") & Range("F4"), Quality _
        :=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End Sub

При нажатии на гиперссылку в файле PDF, на некоторых ПК гиперссылка открывается через браузер, на некоторых через проводник.
Вопрос:
Возможно ли мне как-то указать в свойствах, чтобы в пдф файле при будущем нажатии на гиперссылку она открывалась бы всегда через проводник?

Буду рада, если кто-то сможет помочь с  решением проблемы!
Изменено: Ксения Д. - 13.04.2023 14:02:27
Страницы: 1
Наверх