Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2009, 09:56   #1
3акup
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 12
Лампочка Переход по линкам

Проблема:
В Ячейке стоит цифра. Нажимаешь на цифру и в верхнем адресном окне появляется ссылка на другой документ, ЭТО И ЕСТЬ ЛИНК (напр. В2='С:\Работа\[Иванов.xls]зарплата'!$AB$86). Нужно, чтобы при двойном клике на данную ячейку, автоматически открывался документ, из которого взята данная цифра и выделялась соответствующая ячейка.
Заранее спасибо.
3акup вне форума Ответить с цитированием
Старый 16.02.2009, 10:27   #2
b00s
Форумчанин
 
Регистрация: 19.01.2008
Сообщений: 120
По умолчанию

Ну стандартными средствами Excel это по моему сделать нельзя.
Надо воспользоваться VBA.
Вам нужна процедура
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
......
End Sub
При двойном клике на ячейке вы берёте путь к файлу, а именно С:\Работа\[Иванов.xls] уберате квадратные скобки и запускает его.

В принципе это 10 мин. дело.
Вперед...... будут проблемы пишите...
b00s вне форума Ответить с цитированием
Старый 16.02.2009, 10:47   #3
3акup
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от b00s Посмотреть сообщение
Ну стандартными средствами Excel это по моему сделать нельзя.
Надо воспользоваться VBA.
Вам нужна процедура
Код:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
......
End Sub
При двойном клике на ячейке вы берёте путь к файлу, а именно С:\Работа\[Иванов.xls] уберате квадратные скобки и запускает его.

В принципе это 10 мин. дело.
Вперед...... будут проблемы пишите...
А можно полностью написать макрос, а то я никак не додумаю.
Заранее спасибо.
3акup вне форума Ответить с цитированием
Старый 16.02.2009, 11:07   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение.
Вложения
Тип файла: rar Переход.rar (9.5 Кб, 26 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 16.02.2009, 11:24   #5
b00s
Форумчанин
 
Регистрация: 19.01.2008
Сообщений: 120
По умолчанию

ну вот что то вроде этого
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim file
    file = Mid(Target.FormulaR1C1, 3, InStr(1, Target.FormulaR1C1, "[") - 3) & _
           Mid(Target.FormulaR1C1, InStr(1, Target.FormulaR1C1, "[") + 1, _
           InStr(1, Target.FormulaR1C1, "]") - InStr(1, Target.FormulaR1C1, "[") - 1)
    Application.Workbooks.Open file
End Sub
b00s вне форума Ответить с цитированием
Старый 16.02.2009, 11:45   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

b00s
Извините, но Ваша процедура не будет работать, если файл уже открыт. И у Вас нет активации ячейки из формулы по ссылке.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 16.02.2009, 11:46   #7
3акup
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите вложение.
Посмотрел, применил, но выдает вот такое сообщение. Смотрите в приложении.
Изображения
Тип файла: jpg error.JPG (26.7 Кб, 140 просмотров)
3акup вне форума Ответить с цитированием
Старый 16.02.2009, 11:57   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А Вы запускали именно предложенный файл, или переносили код в другой? Если так, то не забыли ли Вы перенести сам макрос "ToLink", находящийся в программном модуле?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 16.02.2009, 12:18   #9
3акup
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
А Вы запускали именно предложенный файл, или переносили код в другой? Если так, то не забыли ли Вы перенести сам макрос "ToLink", находящийся в программном модуле?
Я переносил код в другой.
Програмный модуль я тоже перенес. Но дело в том, что некоторые книги содержат линк и на книгу, в которой записан сам модуль.
А Ваше предложение, я так понимаю, обязательно для иерархического строения файлов. То есть, есть книга, данные в листах которой содержат линки на другие. НО в моем случае, они ссылаются друг на друга, а также бывает что и листы в пределах одной раб книги имеют линки друг на друга.
3акup вне форума Ответить с цитированием
Старый 16.02.2009, 12:27   #10
3акup
Пользователь
 
Регистрация: 13.02.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от b00s Посмотреть сообщение
ну вот что то вроде этого
Код:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim file
    file = Mid(Target.FormulaR1C1, 3, InStr(1, Target.FormulaR1C1, "[") - 3) & _
           Mid(Target.FormulaR1C1, InStr(1, Target.FormulaR1C1, "[") + 1, _
           InStr(1, Target.FormulaR1C1, "]") - InStr(1, Target.FormulaR1C1, "[") - 1)
    Application.Workbooks.Open file
End Sub
Я применил Ваш код, но теперь все линки в моей книге, где я собственно и применил Ваш код, стали иметь начало "=C:\Documents and Settings\username-b00s\Local Settings\Temporary Internet Files\"название папки"[название листа]'ячейка'
В общем, пришлось удалить. Хорошо что сохранил резервную версию (...перекрестился...)
3акup вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
случайный переход Naposaram PHP 10 01.02.2009 16:47
Переход на КПК Arkuz Помощь студентам 3 01.12.2008 11:01
Переход по страничке Arigato JavaScript, Ajax 9 13.10.2008 17:23
Переход Gorychev PHP 6 26.05.2008 01:16
Переход по странице Gorychev HTML и CSS 2 16.05.2008 21:01