
Генеричка формула
=GET.WORKBOOK(1)&T(NOW())
Резиме
Да бисте пописали радне листове у Екцел радној свесци, можете користити приступ у два корака: (1) дефинишите именовани опсег под називом „имена листова“ са старом наредбом макронаредбе и (2) користите функцију ИНДЕКС за преузимање имена листова помоћу именованог опсега. У приказаном примеру, формула у Б5 је:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Напомена: На ову формулу сам налетео на МрЕкцел табли за поруке у посту Т. Валка.
Објашњење
Именовани опсег „имена листова“ креира се са овим кодом:
=GET.WORKBOOK(1)&T(NOW())
ГЕТ.ВОРКБООК је макро наредба која преузима низ имена листова у тренутној радној свесци. Добијени низ изгледа овако:
("(workbook.xlsm)Sheet1","(workbook.xlsm)Sheet2","(workbook.xlsm)Sheet3","(workbook.xlsm)Sheet4","(workbook.xlsm)Sheet5")
Тајанствени израз је повезан са резултатом:
&T(NOW())
Сврха овог кода је да присили на поновни израчун ради увођења промена у имена листова. Будући да је САДА променљива функција, она се прерачунава при свакој промени радног листа. Функција САДА враћа нумеричку вредност која представља датум и време. Функција Т враћа празан низ ("") за нумеричке вредности, тако да спајање нема ефекта на вредности.
Назад на радном листу, ћелија Б6 садржи копирану формулу:
=INDEX(MID(sheetnames,FIND(")",sheetnames)+1,255),ROWS($B$5:B5))
Радећи изнутра, МИД функција се користи за уклањање имена радног листа. Добијени низ изгледа овако:
("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5")
Ово прелази у функцију ИНДЕКС као „низ“. Функција РОВ користи опсеге који се шире да би генерирала број реда који се увећава. У сваком новом реду ИНДЕКС враћа следећу вредност низа. Када више нема имена листова за излаз, формула ће вратити грешку #РЕФ.
Напомена: пошто се ова формула ослања на наредбу макроа, мораћете да сачувате као радну свеску са омогућеним макронаредбама ако желите да формула настави да ажурира имена листова након што се датотека затвори и поново отвори. Ако сачувате као уобичајени радни лист, код имена листа ће се уклонити.