Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

КАК ИСПОЛЬЗОВАТЬ В ФОРМУЛЕ ИМЯ РАБОЧЕГО ЛИСТА

634 views
Skip to first unread message

Hotdes

unread,
Dec 20, 2005, 2:58:02 AM12/20/05
to
Имеется книга Excel из где-то 100 страниц и нужно, чтобы в определенной
ячейке каждого листа стояло в виде зависимости имя этого листа

KL

unread,
Dec 20, 2005, 5:38:38 AM12/20/05
to
Привет Hotdes,

Варианты в порядке (моего) предпочтения:

1) Наиболее простой вариант:

=ПСТР(ЯЧЕЙКА("filename";$A$1);НАЙТИ("]";ЯЧЕЙКА("filename";$A$1);1)+1;ДЛСТР(ЯЧЕЙКА("filename";$A$1)))

2) Эта формула учитывает частный случай, когда в книге один лист и его название совпадает с названием книги:

=ПРОСМОТР(ПОВТОР("я";255);ПОДСТАВИТЬ(ПСТР(ЯЧЕЙКА("filename";$A$1);1+НАЙТИ({"*"\"]"};ПОДСТАВИТЬ(ЯЧЕЙКА("filename";$A$1);"\";"*";ДЛСТР(ЯЧЕЙКА("filename";$A$1))-ДЛСТР(ПОДСТАВИТЬ(ЯЧЕЙКА("filename";$A$1);"\";""))));255);".xls";""))

3) Функция созданная в VBA (в стандартном модуле):

'-----------
Public Function SheetName() As String
With Application
.Volatile
SheetName= .Caller.Parent.Name
End With
End Function
'-----------

или вот эта:

'-----------
Public Function SheetName (rng As Range) As String
With Application
.Volatile
SheetName = rng.Parent.Name
End With
End Function

'-----------

в ячейке на листе использовать след. формулу: =SheetName()

4) Создать формулу с именем и использовать макрофункции из XL4 (XLM). Внимание: формулы созданные с использованием XLM при
копированиии с одного листа на другой вызывают аварийное закрытие Excel с полной потерей несохраненных изменений!

a. если в книге только один лист
- меню Вставить/ Имя/ Присвоить...
-> в ячейке для имени [напр.]-> Книга
-> в ячейке для формулы -> =ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1)
- в ячейке на листе использовать след. формулу:
=ПСТР(Книга;НАЙТИ("]";Книга)+1;СЕГОДНЯ())

б. если в книге больше одного листа...
- меню Вставить/ Имя/ Присвоить...
-> в ячейке для имени [напр.]-> Книга
-> в ячейке для формулы -> =ПОЛУЧИТЬ.ЯЧЕЙКУ(32+0*СЕГОДНЯ();!$A$1)
- в ячейке на листе использовать след. формулу:
=ЕСЛИ(ЕОШИБКА(ПОИСК("]";Книга));ПОДСТАВИТЬ(Книга;".xls";"");ПСТР(Книга;ПОИСК("]";Книга)+1;31))

Привет,
KL [MVP Microsoft Office - Excel]


"Hotdes" <Hot...@discussions.microsoft.com> wrote in message news:6AA2F940-FBE2-4E17...@microsoft.com...

KL

unread,
Dec 20, 2005, 5:45:26 AM12/20/05
to
Пардон, в 3 варианте (VBA) формулы на листе должны быть такие:

- для первой функции: =SheetName()
- для второй функции: =SheetName(А1)

Привет,
KL [MVP Microsoft Office - Excel]


"KL" <NOSPAMla...@PLEASEhotmail.com> wrote in message news:e6msKGV...@TK2MSFTNGP12.phx.gbl...

0 new messages