Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 18
Excel

Вставка гиперссылки через форму

11.06.2019, 22:04. Показов 7364. Ответов 7

Студворк — интернет-сервис помощи студентам
Здравствуйте. Помогите разобраться, пожалуйста.
Задача в том, чтобы указанный в форме файл попадал в ячейку в виде гиперссылки на этот файл. Пишу:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   Dim File_Passport As String
   Dim wb As Workbook
   Dim wsh As Worksheet
   
   File_Pasport = Application.GetOpenFilename _
     ("PDF files(*.pdf),*.pdf, Pictures(*.jpg*),*.jpg*", 2, "Выберите файл", , True)
   If VarType(File_Pasport) = vbBoolean Then
        Exit Sub
   End If
    
   Set wb = ThisWorkbook
   Set wsh = wb.Worksheets("Лист1")
 
   Last_Row = wsh.Cells(Rows.Count, 1).End(xlUp).Row '
   With wsh
     If .Cells(1, 2) = "" Then
       .Cells(1, 2) = File_Pasport
     Else
       .Cells(LastRow + 1, 2) = File_Pasport
       .Hyperlinks.Add Anchor:=Cells(Last_Row + 1, 2), Address:="File_Pasport"
     End If
   End With

Гиперссылка вставляется, выглядит всё, как должно, но ссылка не работает. Если навести на нее, отображается ссылка на файл file:///{путь к самому экселевскому файлу}/File_Pasport и пишет соответственно "Невозможно открыть файл".
Как правильно перенести значение из переменной, указанной в форме в ячейку с гиперссылкой?
Заранее благодарна.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.06.2019, 22:04
Ответы с готовыми решениями:

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

Вставка гиперссылки в UserForm
Можно ли поместить в UserForm гиперссылку, работающую, чтобы при клике на неё открывался web-браузер и т.д.? и как это сделать

Вставка из таблицы в форму
1. Люди, подскажите пожалуйста как сделать, чтобы при выделении строки или ячейки из этой строки в таблице данные из этой строки...

7
 Аватар для yutrans
142 / 125 / 50
Регистрация: 10.11.2011
Сообщений: 622
11.06.2019, 22:19
Что бы правильно перенести значение , нужно прикрепить файл пример для наглядности
0
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 18
11.06.2019, 22:23  [ТС]
Прикрепляю
Вложения
Тип файла: xlsx 111.xlsx (14.2 Кб, 30 просмотров)
0
 Аватар для yutrans
142 / 125 / 50
Регистрация: 10.11.2011
Сообщений: 622
12.06.2019, 06:23
а где ваш макрос?
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
12.06.2019, 06:40
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
   Dim File_Passport As Variant
   Dim wb As Workbook
   Dim wsh As Worksheet
   
   File_Pasport = Application.GetOpenFilename _
     ("PDF files(*.pdf),*.pdf, Pictures(*.jpg*),*.jpg*", 2, "Выберите файл", , False)
   If VarType(File_Pasport) = vbBoolean Then
        Exit Sub
   End If
    
   Set wb = ThisWorkbook
   Set wsh = wb.Worksheets("Лист1")
 
   If wsh.Cells(1, 2) = "" Then
      wsh.Cells(1, 2) = "Копия паспорта"
   End If
   wsh.Hyperlinks.Add wsh.Cells(wsh.Rows.Count, 2).End(xlUp).Offset(1), File_Pasport
1
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 18
12.06.2019, 14:02  [ТС]
pashulka, спасибо, это то, что нужно. Немного подкорректировала под остальные нужды, получилось вот так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim File_Passport As Variant
   Dim wb As Workbook
   Dim wsh As Worksheet
 
   File_Pasport = Application.GetOpenFilename _
     ("PDF files(*.pdf),*.pdf, Pictures(*.jpg*),*.jpg*", 2, "Вставьте файл", , False)
   If VarType(File_Pasport) = vbBoolean Then
        Exit Sub
   End If
   Put_Pasport = File_Pasport
   
   Set wb = ThisWorkbook
   Set wsh = wb.Worksheets("Лист1")
   
   Last_Row2 = wsh.Cells(Rows.Count, 1).End(xlUp).Row
  
   With wsh
    If .Cells(Last_Row2, 2) = "" Then
       .Cells(Last_Row2, 2) = File_Pasport
      Else
       .Cells(wsh.Rows.Count, 2) = File_Pasport
    End If
   End With
   
   wsh.Hyperlinks.Add wsh.Cells(wsh.Rows.Count, 2).End(xlUp).Offset(1), File_Pasport
(Прошу прощения у модераторов, не могу найти, где кнопки для правильного оформления куска кода в сообщении...)
0
 Аватар для pashulka
4138 / 2242 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
12.06.2019, 16:13
Это уже не корректировка, а какое-то бессмысленное упрямство. Ведь видно, что перед созданием гиперссылок, присваивать ячейкам значение не нужно. Тем более так, где сначала вводится текст, а затем в ячейке, расположенной под ней, будет создана гиперссылка, ибо Last_Row2 определяется в столбце A, а lastrow для гиперссылки - уже в столбце B, правда без переменной) А инструкция With... предположим, что Вы жить без неё не можете, но нет, при определении номера последней заполненной видимой ячейки и создании гиперссылки - она уже не при делах.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   Dim File_Passport As Variant
   Dim wb As Workbook
   Dim wsh As Worksheet
   Dim Last_Row As Long
 
   File_Pasport = Application.GetOpenFilename( _
   "PDF files(*.pdf),*.pdf, Pictures(*.jpg*),*.jpg*", 2, "Вставьте файл", , False)
   If VarType(File_Pasport) = vbBoolean Then Exit Sub
   
   Set wb = ThisWorkbook
   Set wsh = wb.Worksheets("Лист1")
  
   With wsh
        Last_Row = .Cells(.Rows.Count, 1).End(xlUp).Row
        If .Cells(Last_Row, 2) = "" Then
           .Hyperlinks.Add .Cells(Last_Row, 2), File_Pasport
        Else
           .Hyperlinks.Add .Cells(Last_Row + 1, 2), File_Pasport
       End If
   End With
1
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 18
12.06.2019, 19:29  [ТС]
Да, действительно, так лучше.
Еще раз благодарю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2019, 19:29
Помогаю со студенческими работами здесь

Вставка гиперссылки через JavaScript
Здравствуйте. Помогите мне разобраться с парочкой нюансов на JS, а именно: Имеется таблица. с некоторой пустой ячейкой. Под ...

Вставка текста на страницу но не через форму ?
Добрый день! Подскажите может кто знает , можно ли вставлять текст на html страницу javascriptom но не через формы а в любое место страницы...

Вставка вложения в таблицу через форму
Доброго времени суток уважаемые знатоки форума. Собственно проблема с которой я столкнулся следующая: - есть небольшая база в одной...

Вставка OLE объекта в таблицу через форму
Ребята, подскажите, пожалуйста, как реализовать это? Нужно, чтобы на форме при клике на кнопку открывался файловый диалог для выбора...

Вставка данных из одной таблицы в другую через форму
Такая вот проблема.Есть две формы на две таблицы соответственно.В таблицах совпадают столбцы "Модель". На первой форме есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru