Страницы: 1
RSS
Открытие файла Word из Excel, имеющего название содержащегося в ячейке значения
 
Привет, друзья! Я снова за помощью. Есть такая задача:
Имеется файл Excel, в котором содержатся данные по сотрудникам.
В столбце "A" прописаны номера актов.
Также, на том же компьютере есть папка с документами Word, имена которых носят названия, содержащиеся в столбце "A" документа Excel.
Необходимо по двойному щелчку в ячейках из столбца A открывать документ Word, который имеет название, прописанное в этой ячейке.
То есть кликнул два раза по номеру акта 2 и открылся документ Word с названием 2.
Благодарен за любую помощь.

P/S   в качестве двойного клика можно использовать что-то другое)

Пример файла Excel  прикрепляю.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
А сделать гиперссылки не пробовали? И щелкать всего один раз  :)  
 
Dyroff,добрый вечер.
А гиперссылка в этом случае не помогает?
... в этом мире не лжет, потому что не в состоянии, только одна вещь, и это - математика.
 
_Igor_61,  посещала такая мысль) Но ведь гиперрсылки это один раз и жестко.  А если акты постоянно пополняются, то процесс будет трудоемким)
Изменено: Dyroff - 25.04.2017 23:03:47
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Lefevr, Неа, если завтра на месте цифры 1 окажется цифра 12 - все пропало) А код будет искать документ 12 в папке документов ворд, что мне кажется правильнее
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Делаем столбец L скрытым и потом в столбце "А" меняем хоть цифры, хоть пишем буквы - гиперссылка не изменится, и макрос не нужен
 
_Igor_61, Супер, спасибо большое.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Не забудьте расширение в конце добавить
Код
=ГИПЕРССЫЛКА(L$1&L2;L2&".doc")
 
_Igor_61, Да, это важно) То-то я смотрю у меня ничего не получается)
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
_Igor_61, Ошибка: Не удается открыть указанный файл.
Изменено: Dyroff - 25.04.2017 23:56:30
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Цитата
_Igor_61 написал:=ГИПЕРССЫЛКА(L$1&L2;L2&".doc")
В этом варианте расширение добавляется к названию файла, что не несет функциональности. Формула в таком виде не работает и работать, на мой взгляд, не может, так как путь формируется не совсем правильно.Расширение указано не там, из-за этого ошибка.
При применении этого способа у меня получилось вот так:
Код
=ГИПЕРССЫЛКА(L$1&L2&".doc";L2)

В любом случае, очень благодарен Вам за идею.
Изменено: Dyroff - 26.04.2017 01:39:57
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Вопрос остается открытым, возможно ли выполнить подобную процедуру  кодом? Чтобы не приходилось переносить данные в дополнительный столбец и по нему формировать ссылки в таблице.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim objWrdApp As Object, objWrdDoc As Object
    If Not Intersect(Target, Range("A2:A5")) Is Nothing Then
        Set objWrdApp = CreateObject("Word.Application")
        objWrdApp.Visible = True
        Set objWrdDoc = objWrdApp.Documents.Open("D:\Download\" & Target & ".docx") 'Путь подставьте свой
    End If
    Cancel = True
End Sub




 
Юрий М, Огромное спасибо!!! То что надо. Отлично работает.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Дима  пишет, что потом обязательно нужно очищать переменные.
 
Юрий М, Ага, спасибо, за важное уточнение. Сейчас добавлю)
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Юрий М, Так?
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim objWrdApp As Object, objWrdDoc As Object
    If Not Intersect(Target, Range("A2:A5")) Is Nothing Then 'диапазон укажи в котором номера актов
        Set objWrdApp = CreateObject("Word.Application")
        objWrdApp.Visible = True
        Set objWrdDoc = objWrdApp.Documents.Open("C:\Users\Олеся\Desktop\тест\" & Target & ".docx") 'Путь подставь свой, где лежат документы ворд
    End If
    Cancel = True
    Set objWrdDoc = Nothing: Set objWrdApp = Nothing
End Sub
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Работает? Значит так )
 
Юрий М,  Спасибо:) работает.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
Страницы: 1
Читают тему
Наверх