Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Подставить результат функции вместо имени листа - как? - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Подставить результат функции вместо имени листа - как?
acidlisk Дата: Пятница, 19.09.2014, 10:48 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте!

Есть функция (спасибо этому форуму), которая возвращает имя предыдущего листа в книге.
Если вызвать ее в ячейке (например, так: =PrevSheet(A1)), то результатом будет содержимое ячейки А1 предыдущего листа.

Но, поскольку не хочется вызывать эту функцию каждый раз, когда требуется получить имя предыдущего листа, то встает вопрос: можно ли, к примеру, вызвать ее один раз в какой-нибудь ячейке. а потом уже оперировать значением полученного результата?
Я это вижу примерно так:
B1 =PrevSheet(A1) *получаем имя пред. листа, прописанное в ячейке А1
C1 ='B1'!E749 * подставляем в ячейку С1 значение ячейки Е749 пред. листа.

Но, само собой, такая конструкция не работает. Как правильно написать?

Спасибо!


Сообщение отредактировал acidlisk - Пятница, 19.09.2014, 11:08
 
Ответить
СообщениеЗдравствуйте!

Есть функция (спасибо этому форуму), которая возвращает имя предыдущего листа в книге.
Если вызвать ее в ячейке (например, так: =PrevSheet(A1)), то результатом будет содержимое ячейки А1 предыдущего листа.

Но, поскольку не хочется вызывать эту функцию каждый раз, когда требуется получить имя предыдущего листа, то встает вопрос: можно ли, к примеру, вызвать ее один раз в какой-нибудь ячейке. а потом уже оперировать значением полученного результата?
Я это вижу примерно так:
B1 =PrevSheet(A1) *получаем имя пред. листа, прописанное в ячейке А1
C1 ='B1'!E749 * подставляем в ячейку С1 значение ячейки Е749 пред. листа.

Но, само собой, такая конструкция не работает. Как правильно написать?

Спасибо!

Автор - acidlisk
Дата добавления - 19.09.2014 в 10:48
_Boroda_ Дата: Пятница, 19.09.2014, 11:10 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16895
Репутация: 6612 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
B1 =PrevSheet(A1) *получаем имя пред. листа
получаете не имя, а
=PrevSheet(A1)), то результатом будет содержимое ячейки А1 предыдущего листа.


C1 ='B1'!E749 * подставляем в ячейку С1 значение ячейки Е749 пред. листа.
Но если там имя листа, тоздесь используйте функцию ДВССЫЛ
Код
=ДВССЫЛ(B1&"!E749")

Вариант функции для вывода имени пред. листа
[vba]
Код
Public Function PrList(r_ As Range)
     On Error Resume Next
     sn_ = Sheets(r_.Parent.Index - 1).Name
     If Err.Number <> 0 Then sn_ = "Нет_предыдущего_листа"
     PrList = sn_
End Function
[/vba]
см. файл
К сообщению приложен файл: 565656.xlsm (15.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
B1 =PrevSheet(A1) *получаем имя пред. листа
получаете не имя, а
=PrevSheet(A1)), то результатом будет содержимое ячейки А1 предыдущего листа.


C1 ='B1'!E749 * подставляем в ячейку С1 значение ячейки Е749 пред. листа.
Но если там имя листа, тоздесь используйте функцию ДВССЫЛ
Код
=ДВССЫЛ(B1&"!E749")

Вариант функции для вывода имени пред. листа
[vba]
Код
Public Function PrList(r_ As Range)
     On Error Resume Next
     sn_ = Sheets(r_.Parent.Index - 1).Name
     If Err.Number <> 0 Then sn_ = "Нет_предыдущего_листа"
     PrList = sn_
End Function
[/vba]
см. файл

Автор - _Boroda_
Дата добавления - 19.09.2014 в 11:10
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!