powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в excel сослаться в формуле на лист по его номеру, а не имени
6 сообщений из 6, страница 1 из 1
Как в excel сослаться в формуле на лист по его номеру, а не имени
    #34525966
ian69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Требуется из кучи листов (около 300, так что вручную долго) взять первые столбцы и скопировать рядом в один лист. Писать имя каждого листа в формуле нереально. Поджскажите, можно ли в формуле вместо имени листа использовать что-то вроде индекса, чтобы просто растянуть на манер относительной ссылки на ячейку? Заранее спасибо.
...
Рейтинг: 0 / 0
Как в excel сослаться в формуле на лист по его номеру, а не имени
    #34526753
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно, но сложно :-)

Вариант 1: Пользовательская функция VBA

в стандартном модуле:

Код: plaintext
1.
2.
3.
Public Function SheetID(lngIndex) As String
    Application.Volatile
    SheetID = "'" & Application.Caller.Worksheet.Parent.Worksheets(lngIndex).Name & "'!"
End Function

на листе:

=ДВССЫЛ(sheetid(3)&"D5")
=ДВССЫЛ(sheetid(3)&ЯЧЕЙКА("address";D5))

и т.д.

ессно все формулы дико летучие и будут проблемы если ячейка, на кот. ссылаешься будет передвигаться.

Вариант 2: Именованная формула + XLM4.0 (макрофункции)

- меню Вставка-Имя-Присвоить...
- имя: SheetsList
- формула: =ПОЛУЧИТЬ.РАБОЧУЮ.КНИГУ(1+0*ТДАТА())
- кнопка: Добавить
- кнопка: ОК

на листе:
=ДВССЫЛ("'"&ИНДЕКС(SheetsList;3)&"'!"&"D5")

см. примеры в приложении.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Как в excel сослаться в формуле на лист по его номеру, а не имени
    #34526760
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пардон поправка к пользовательской функции:

Код: plaintext
1.
2.
3.
Public Function SheetID(lngIndex As Long) As String
    Application.Volatile
    SheetID = "'" & Application.Caller.Worksheet.Parent.Worksheets(lngIndex).Name & "'!"
End Function

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Как в excel сослаться в формуле на лист по его номеру, а не имени
    #34526779
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)пардон поправка к пользовательской функции:

Код: plaintext
1.
2.
3.
Public Function SheetID(lngIndex As Long) As String
    Application.Volatile
    SheetID = "'" & Application.Caller.Worksheet.Parent.Worksheets(lngIndex).Name & "'!"
End Function

KL
[MVP - Microsoft Excel]
а если просто!

Код: plaintext
1.
2.
3.
Public Function SheetID(lngIndex As Long) As String
    Application.Volatile
     SheetID = "'" & Worksheets(lngIndex).Name & "'!"
End Function

В чём разница?
...
Рейтинг: 0 / 0
Как в excel сослаться в формуле на лист по его номеру, а не имени
    #34526954
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasad а если просто!

Код: plaintext
1.
2.
3.
Public Function SheetID(lngIndex As Long) As String
    Application.Volatile
     SheetID = "'" & Worksheets(lngIndex).Name & "'!"
End Function

В чём разница?

Надо проверить, но возможно разницы не будет, т.к. Worksheets(lngIndex).Name вызываемый из стандартного модуля будет ссылаться на ActiveWorkbook по-умолчанию :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Как в excel сослаться в формуле на лист по его номеру, а не имени
    #34528829
ian69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, всё работает! Сэкономлена по меньшей мере неделя!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как в excel сослаться в формуле на лист по его номеру, а не имени
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]