
Bendroji formulė
=GET.WORKBOOK(1)&T(NOW())
Santrauka
Norėdami išvardyti darbalapius „Excel“ darbaknygėje, galite naudoti dviejų žingsnių metodą: (1) apibrėžkite pavadintą diapazoną, vadinamą „lapų vardais“ su sena makrokomanda, ir (2) naudokite funkciją INDEX, kad gautumėte lapų pavadinimus naudodami pavadintą diapazoną. Parodytame pavyzdyje formulė B5 yra:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Pastaba: Į šią formulę patekau „MrExcel“ pranešimų lentoje T. Valko įraše.
Paaiškinimas
Pavadintas diapazonas „lapų vardai“ sukurtas naudojant šį kodą:
=GET.WORKBOOK(1)&T(NOW())
GET.WORKBOOK yra makrokomanda, kuri gauna lapų pavadinimų masyvą dabartinėje darbaknygėje. Gautas masyvas atrodo taip:
("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")
Kriptinė išraiška susieta su rezultatu:
&T(NOW())
Šio kodo tikslas yra priversti perskaičiuoti, kad būtų paimti lapų pavadinimų pakeitimai. Kadangi DABAR yra nepastovi funkcija, ji perskaičiuojama su kiekvienu darbalapio pakeitimu. Funkcija DABAR grąžina skaitinę reikšmę, nurodančią datą ir laiką. Funkcija T pateikia skaitinių reikšmių tuščią eilutę (""), todėl sujungimas neturi įtakos vertėms.
Grįžtant į darbalapį, langelyje B6 yra ši nukopijuota formulė:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Dirbant iš vidaus, MID funkcija naudojama darbalapių pavadinimams pašalinti. Gautas masyvas atrodo taip:
("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")
Tai įeina į INDEX funkciją kaip "masyvas". Funkcija ROW naudoja besiplečiančius diapazonus, kad generuotų didėjantį eilutės numerį. Kiekvienoje naujoje eilutėje INDEX pateikia kitą masyvo vertę. Kai nebebus išleidžiamų lapų pavadinimų, formulė pateiks #REF klaidą.
Pastaba: kadangi ši formulė priklauso nuo makrokomandos, turėsite išsaugoti kaip makrokomandą įgalintą darbaknygę, jei norite, kad formulė ir toliau atnaujintų lapų pavadinimus, kai failas bus uždarytas ir vėl atidarytas. Jei išsaugosite kaip įprastą darbalapį, lapo pavadinimo kodas bus pašalintas.