Страницы: 1
RSS
Возжоно ли открывать одноименный PDF файл без привязки гиперссылкой.
 
Добрый день.
Подскажите пожалуйста, возможно ли при помощи Exel открывать PDF файлы в определенной папке, без привязки гиперссылкой.
В строку списком заносятся номера счетов к оплате, сами же счета в PDFе сохраняются в определенном месте, в определенной папке. Наименование PDFфайла - номер счета. Задача нажимаем на номер счета в столбце - открывается PDF файл с одноименным номером счета.
Привязывать всё гиперссылкой - утомительно, счетов великое множество...
Если это решаемо, то возможен ли такой же фокус если файлы будут разных форматов (не только PDF)????

Спасибо...
Изменено: PolPol - 15.02.2015 17:18:44
 
Дык, это очень легко делается с помощью макроса. Можно прогнать в цикле все файлы  с помощью Dir и потом вставлять гиперссылки на нужные файлы.
С уважением,
Федор/Все_просто
 
Пардон, все оказалось проще простого, но вопрос открытия файлов с разными форматами не решен и актуален.
 
никогда не делал - нужды не было
2 минуты на гугл. 2 - на проверку.
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
 
Public Const SW_SHOWMAXIMIZED = 3
 
Sub test()
  s = "E:\books\[MS-VBAL]. VBA Language Specification.pdf"
  Call ShellExecute(0, "open", s, "", "", SW_SHOWMAXIMIZED)
End Sub

пс. (пояснение на всякий случай) любой файл открывается в той программе, которая ассоциирована в Windows с файлами с этим расширением.
Изменено: ikki - 15.02.2015 19:17:51
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, все делается одной строкой кода, без WinAPI:
(результат тот же)
Код
1
2
3
Sub test()
  createobject("wscript.shell").run "E:\books\[MS-VBAL].VBA Language Specification.pdf"
End Sub
 
Код
1
2
3
4
5
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    On Error Resume Next
    ThisWorkbook.FollowHyperlink Target.Value
End Sub
 
Судя по описанию, достаточно будет функции ГИПЕРССЫЛКА: Что такое гиперссылка?
Код
1
=ГИПЕРССЫЛКА("C:\temp\\"&A1&".pdf");A1)
В А1 - номер счета.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Игорь пишет: все делается одной строкой кода, без WinAPI
И даже без создания объекта  :)  
Код
1
shell "cmd /c start c:\temp\MyDoc.pdf",vbMinimizedFocus
Цитата
The_Prist пишет: Судя по описанию, достаточно будет функции ГИПЕРССЫЛКА
Согласен.
 
Цитата
Игорь пишет: одной строкой кода
не.
это совершенно несолидно выглядит   :D  

если серьёзно - что первым нагуглил, то и выложил.
задача решается? решается.
копипаст что одной строки, что 10-ти занимает одинаковое время? одинаковое.

а короткие варианты (как кодом, так и функцией на листе) - это, конечно, гут.
собственно, для того мы и ходим на форумы - чтобы учиться новому.
;)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1
Читают тему
Наверх
Loading...