2013-04-17 2 views
2

У меня есть книги со следующим Apperance:Функции для получения конкретного SheetName

enter image description here

Это Workbooks первого листа, «Resultat», вычисляет данные из других листов в книге и представляет их как показы изображений.

Для правильной работы расчетов имена, указанные в отмеченных красных квадратах, должны быть одинаковыми и соответствующими, иначе значение будет #####, как вы можете видеть для ввода номера 2 (ячейка A5 работает и имеют то же имя, что и номер листа 2, но ячейка A8 не работает, поскольку она не имеет то же имя, что и номер листа 3).

Мой вопрос в основном, можно ли использовать функцию, которая будет вводить имя листа в определенной ячейке. В этом примере я хотел бы, чтобы cell A5 автоматически выбрал имя листа с index 2, cell A8, равным листу с index 3 и так далее.

Прямо сейчас я делаю это вручную, но это было бы большой помощью, если бы это могло быть автоматизировано, так как у меня есть много этих книг, и имена меняются время от времени.

ответ

2

Используйте эту формулу

=MID(CELL("filename",A1), FIND("]", CELL("filename", A1))+ 1, 255) 

Вышеуказанное даст вам название текущего листа

Если вы измените ссылку A1 на соответствующий лист, она подберет это имя.

Ex:

=MID(CELL("filename",Sheet1!A1), FIND("]", CELL("filename", Sheet1!A1))+ 1, 255) 

Это даст вам Sheet1

+0

славный. Просто убедитесь, что сохранили книгу хотя бы один раз, прежде чем начинать экспериментировать с этим (в отличие от меня). – MikeD

+0

Работает. Я не получил формулу для работы сначала, но понял, что это потому, что у меня есть разные настройки на местном языке, чем вы. По-видимому, использование шведского языка использует; в качестве разделителя вместо, –

+0

samma som tyska – MikeD

1

Создайте модуль VBA и введите следующий код:

Public Function SheetNameByIndex(Index As Integer) As String 
    SheetNameByIndex = ActiveWorkbook.Sheets(Index).Name 
End Function 

сейчас, в любом месте в вашей книге, вы можете сделать

=sheetnamebyindex(2) 
=sheetnamebyindex(A1) 
+0

+1 Спасибо за ваш ответ. Я собираюсь ответить Sids, хотя, поскольку я предпочитаю использовать формулу над VBA –

Смежные вопросы