
Všeobecný vzorec
=GET.WORKBOOK(1)&T(NOW())
Zhrnutie
Ak chcete zobraziť zoznam pracovných hárkov v zošite programu Excel, môžete použiť dvojstupňový prístup: (1) pomocou starého príkazu makra definujte pomenovaný rozsah nazývaný „názvy listov“ a (2) pomocou funkcie INDEX načítajte názvy listov pomocou pomenovaného rozsahu. V zobrazenom príklade je vzorec v B5:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Poznámka: Na tento vzorec som narazil na nástenke MrExcel v príspevku T. Valka.
Vysvetlenie
Pomenovaný rozsah „sheetnames“ sa vytvára pomocou tohto kódu:
=GET.WORKBOOK(1)&T(NOW())
GET.WORKBOOK je príkaz makra, ktorý načíta rad názvov hárkov v aktuálnom zošite. Výsledné pole vyzerá takto:
("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")
Záhadný výraz je zreťazený do výsledku:
&T(NOW())
Účelom tohto kódu je prinútiť prepočet, aby zachytil zmeny v názvoch hárkov. Pretože NOW je volatilná funkcia, prepočítava sa to pri každej zmene pracovného hárka. Funkcia NOW vráti číselnú hodnotu predstavujúcu dátum a čas. Funkcia T vráti prázdny reťazec ("") pre číselné hodnoty, takže zreťazenie nemá na hodnoty žiadny vplyv.
Bunka B6 obsahuje na konci pracovného hárka tento vzorec skopírovaný nadol:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Pri práci zvnútra von sa funkcia MID používa na odstránenie názvov pracovných hárkov. Výsledné pole vyzerá takto:
("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")
Toto prejde do funkcie INDEX ako „pole“. Funkcia ROW používa na zväčšenie rozsahu generovanie prírastkového čísla riadku. V každom novom riadku vráti INDEX ďalšiu hodnotu poľa. Ak na výstup nie sú k dispozícii žiadne ďalšie názvy hárkov, vzorec vráti chybu #REF.
Poznámka: pretože tento vzorec sa spolieha na príkaz makra, budete musieť uložiť ako zošit s povoleným makrom, ak chcete, aby vzorec pokračoval v aktualizácii názvov hárkov aj po zatvorení a opätovnom otvorení súboru. Ak uložíte ako normálny pracovný hárok, kód názvu hárka bude odstránený.