Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Главное меню

Открытие книги через макрос

Автор lovko, 26.12.2013, 10:53

« назад - далее »

lovko

Здравствуйте! Помогите, пожалуйста!
Кнопка, которой присваивается макрос, находится на листе "Стартовая". На листе "Поиск" в ячейке G1 указано название другой книги. В H1 - название листа этой книги. Как создать макрос, который открывал бы книгу с названием из ячейки G1 и лист в этой книге с названием из ячейки H1?
Огромное спасибо!

cheshiki1

как то так
Sub Макрос2()
Set A = [H1]
Workbooks.Open "C:\Documents and Settings\Master\Мои документы\" & [G1] & ".xls"
Sheets(A.Value).Activate
End Sub

до тачивайте под себя.  ;)

lovko

Макрос подделал под себя. Так как кнопка будет находиться на другом листе, в третью строку добавил Sheets("Поиск")., чтобы название книги бралось именно с листа "Поиск". Но теперь при выполнении макроса не работает строка Sheets(A.Value).Activate. В чем моя проблема?

Sub Макрос2()
Set A = [H1]
Workbooks.Open "C:\Documents and Settings\Master\Мои документы\" & Sheets("Поиск").[G1] & ".xlsm"
Sheets(A.Value).Activate
End Sub

lovko

Разобрался. В итоге:

Sub Макрос2()
Set A = Sheets("Поиск").[H1]
Workbooks.Open "C:\Documents and Settings\Master\Мои документы\" & Sheets("Поиск").[G1] & ".xls"
Sheets(A.Value).Activate
End Sub

Большое спасибо за помощь!

kuklp

lovko, оформляйте код тегами.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

lovko

И снова проблема.
И в ячейке G1, и в ячейке H1 - формула, которая дает то или иное название книги и листа. Макрос, видимо, видит саму формулу, а не ее значение в виде названия книги и названия листа, поэтому работать не хочет. Можно ли сделать так, чтобы макрос видел не формулу, а ее содержание?
Помогите!!!

cheshiki1

#6
Цитировать"C:\Documents and Settings\Master\Мои документы\"
у вас точно такой путь к файлу?
файл прикладываем.

lovko


cheshiki1

#8
макрос нормально отрабатывает. Ошибка может быть если листа с таким именем нет.
Sub Поиск1()
Set A = Sheets("Поиск").[H1]
Set B = Sheets("Поиск").[G1]
On Error GoTo S
Workbooks.Open "C:\Инструкции\" & B.Value & ".xlsm"
On Error GoTo S1
Sheets(A.Value).Activate
Exit Sub
S:
MsgBox "По пути C:\Инструкции\ отсутствует книга " & B.Value
Exit Sub
S1:
MsgBox "В книге " & B.Value & ".xlsm лист с именем " & A.Value & " отсутствует."
End Sub

lovko

Все отлично работает. Большое спасибо!