
Yleinen kaava
=GET.WORKBOOK(1)&T(NOW())
Yhteenveto
Jos haluat luetella laskentataulukoita Excel-työkirjassa, voit käyttää kaksivaiheista lähestymistapaa: (1) määritellä nimetty alue, jota kutsutaan nimellä "arkkinimet", vanhalla makrokomennolla ja (2) hakea taulukon nimiä käyttämällä nimettyä aluetta INDEX-funktiolla. Esitetyssä esimerkissä kaava kohdassa B5 on:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Huomaa: törmäsin tähän kaavaan MrExcel-ilmoitustaululle T.Valkon lähettämässä viestissä.
Selitys
Nimetty alue "sheetnames" luodaan tällä koodilla:
=GET.WORKBOOK(1)&T(NOW())
GET.WORKBOOK on makrokomento, joka hakee taulukon taulukoiden nimet nykyisestä työkirjasta. Tuloksena oleva taulukko näyttää tältä:
("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")
Salattu lauseke liitetään tulokseen:
&T(NOW())
Tämän koodin tarkoituksena on pakottaa uudelleenlaskenta poimimaan muutokset arkkien nimiin. Koska NOW on haihtuva toiminto, se laskee uudelleen jokaisen laskentataulukon muutoksen kanssa. NOW-toiminto palauttaa numeerisen arvon, joka edustaa päivämäärää ja aikaa. T-funktio palauttaa tyhjän merkkijonon ("") numeerisille arvoille, joten ketjutuksella ei ole vaikutusta arvoihin.
Takaisin laskentataulukolle solu B6 sisältää tämän kaavan, joka on kopioitu alaspäin:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Sisältäpäin työskentelemällä MID-toimintoa käytetään laskentataulukoiden nimien poistamiseen. Tuloksena oleva taulukko näyttää tältä:
("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")
Tämä siirtyy INDEX-funktioon "matriisina". ROW-toiminto käyttää laajenevia alueita kasvavan rivinumeron luomiseen. Jokaisella uudella rivillä INDEX palauttaa seuraavan taulukon arvon. Kun tulostettavia arkkien nimiä ei enää ole, kaava palauttaa #REF-virheen.
Huomaa: koska tämä kaava perustuu makrokomentoon, sinun on tallennettava makrokäyttöisenä työkirjana, jos haluat kaavan jatkavan taulukoiden nimien päivittämistä tiedoston sulkemisen ja avaamisen jälkeen. Jos tallennat normaalina laskentataulukona, taulukon nimen koodi riisutaan.