Добрый вечер!
Пытаюсь сделать формулу ГИПЕРССЫЛКА более удобной, с возможностью выбирать путь к файлу на диске.
При выполнении кода выпадает ошибка 1004. Что-то не так с синтаксисом самой формулы при выводе в ячейку (предпоследняя строка кода).
Если убрать знак = перед ГИПЕРССЫЛКА, то формула вставляется в виде текста в ячейку.
И вторая проблема: не пойму как переменную имяфайла заключить в кавычки (как это и должно быть в формуле)
Пытаюсь сделать формулу ГИПЕРССЫЛКА более удобной, с возможностью выбирать путь к файлу на диске.
Код |
---|
Function GetFilePath(Optional ByVal Title As String = "Выберите файл Контракта", _ Optional ByVal InitialPath As String = "C:\", _ Optional ByVal FilterDescription As String = "Документы Adobe", _ Optional ByVal FilterExtention As String = "*.pdf*") As String ' функция выводит диалоговое окно выбора файла с заголовком Title, ' начиная обзор диска с папки InitialPath ' возвращает полный путь к выбранному файлу, или пустую строку в случае отказа от выбора ' для фильтра можно указать описание и расширение выбираемых файлов On Error Resume Next With Application.FileDialog(msoFileDialogOpen) .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath .Filters.Clear: .Filters.Add FilterDescription, FilterExtention If .Show <> -1 Then Exit Function GetFilePath = .SelectedItems(1): PS = Application.PathSeparator End With End Function Sub Гиперссылка_на_файл() ИмяФайла = GetFilePath ' запрашиваем имя файла If ИмяФайла = "" Then Exit Sub ' выход, если пользователь отказался от выбора файла Selection.Formula = "=ГИПЕРССЫЛКА(" & ИмяФайла & ";" & Application.InputBox("Введите номер Контракта") & ")" End Sub |
Если убрать знак = перед ГИПЕРССЫЛКА, то формула вставляется в виде текста в ячейку.
И вторая проблема: не пойму как переменную имяфайла заключить в кавычки (как это и должно быть в формуле)