
Generieke formule
=GET.WORKBOOK(1)&T(NOW())
Samenvatting
Om werkbladen in een Excel-werkmap weer te geven, kunt u een aanpak in twee stappen gebruiken: (1) definieer een benoemd bereik met de naam "bladnamen" met een oude macroopdracht en (2) gebruik de functie INDEX om bladnamen op te halen met het benoemde bereik. In het getoonde voorbeeld is de formule in B5:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Opmerking: ik kwam deze formule tegen op het MrExcel-prikbord in een bericht van T. Valko.
Uitleg
Het benoemde bereik "bladnamen" wordt gemaakt met deze code:
=GET.WORKBOOK(1)&T(NOW())
GET.WORKBOOK is een macroopdracht die een reeks bladnamen in de huidige werkmap ophaalt. De resulterende array ziet er als volgt uit:
("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")
Een cryptische uitdrukking wordt samengevoegd met het resultaat:
&T(NOW())
Het doel van deze code is om herberekening te forceren om wijzigingen in bladnamen op te pikken. Omdat NOW een vluchtige functie is, wordt deze herberekend bij elke wijziging van het werkblad. De functie NU retourneert een numerieke waarde die de datum en tijd vertegenwoordigt. De functie T retourneert een lege tekenreeks ("") voor numerieke waarden, dus de aaneenschakeling heeft geen effect op waarden.
Terug op het werkblad bevat cel B6 deze formule die naar beneden is gekopieerd:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Werkend van binnen naar buiten, wordt de MID-functie gebruikt om de werkbladnamen te verwijderen. De resulterende array ziet er als volgt uit:
("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")
Dit gaat in de INDEX-functie als "array". De functie RIJ gebruikt een uitbreidend bereik om een oplopend rijnummer te genereren. Bij elke nieuwe rij retourneert INDEX de volgende matrixwaarde. Als er geen bladnamen meer zijn om uit te voeren, retourneert de formule een #REF-fout.
Opmerking: omdat deze formule afhankelijk is van een macroopdracht, moet u deze opslaan als een werkmap met ingeschakelde macro's als u wilt dat de formule de bladnamen blijft bijwerken nadat het bestand is gesloten en opnieuw is geopend. Als u opslaat als een normaal werkblad, wordt de bladnaamcode verwijderd.