Я пытаюсь суммировать ячейку Y116 по всем действительным таблицам в моей книге Excel. Чтобы помочь определить действительные листы, я написал функцию VBA, SHEETNAME (число), которая возвращает имя листа по указанному индексу (число) листа. Я сделал это, потому что имена и количество действительных листов никогда не будут постоянными, однако допустимый диапазон всегда будет начинаться с 3-го листа (т. Е. SHEETNAME (3)) и всегда будет заканчиваться третьим от последнего листа (т. Е. SHEETNAME (SHEETS ( ) -2)) в моей рабочей тетради.
Мне кажется, что это должно быть относительно просто с SUM () и INDIRECT (), но я продолжаю получать ошибки ссылок (#REF!).
Я могу получить строку, отформатированную так, как я хочу, с помощью
="'"&SHEETNAME(3)&":"&SHEETNAME(SHEETS()-2)&"'!Y116"
, но я получаю ошибку ссылки, когда пытаюсь собрать все это вместе:
=SUM(INDIRECT("'"&SHEETNAME(3)&":"&SHEETNAME(SHEETS()-2)&"'!Y116"))
Я знаю, что ячейка Y116 действительная ссылка во всех моих листах, потому что я могу жестко закодировать формулу с фактическими именами листов вместо индекса, и я получаю ответ, который ищу. Любой совет?
Вот функция SHEETNAME ():
Function SHEETNAME(number As Long) As String<br>
SHEETNAME = Sheets(number).Name
End Function