Ако користите много именованих ћелија и опсега у радној свесци, можда ћете бити изненађени када откријете да Екцел не пружа начин да наведе детаље за свако име. Корисне информације се појављују у дијалогу Менаџер имена, али не постоји начин да се те информације прикажу на начин који се може одштампати.
ВБА код који се овде нуди генерише користан извештај који описује имена дефинисана у било којој радној свесци.
Пример извештаја о називу
Овде видите пример извештаја о имену.
Извештај, који је креиран на новом радном листу, укључује следеће информације за свако име:
-
Име: Име.
-
РеферсТо: Дефиниција за име. Обично ће ово бити ћелија или опсег, али име такође може да дефинише формулу.
-
Ћелије: Број ћелија садржаних у именованом опсегу. За именоване формуле, ово поље приказује #Н/А.
-
Обим: Опсег назива — или Радна свеска, или назив одређеног радног листа на којем је име важеће.
-
Скривено: Тачно ако је име скривено. Скривена имена креирају неки додаци (као што је Солвер) и не појављују се у дијалогу Менаџер имена.
-
Грешка: Тачно ако име садржи погрешну референцу.
-
Линк: хипервеза која, када се кликне, активира именовани опсег. Само имена која се односе на ћелије или опсеге укључују везу.
-
Коментар: Коментар за име, ако постоји.
ВБА код
Да бисте користили овај код, притисните Алт+Ф11 да бисте активирали Висуал Басиц Едитор. Затим изаберите Убаци → Модул да уметнете нови ВБА модул. Копирајте код и налепите га у нови модул.
Суб ГенератеНамеРепорт()
' Генерише извештај за сва имена у радној свесци
' (Не укључује називе табела)
Дим н Ас Наме
Дим Ров Ас Лонг
Дим ЦеллЦоунт као варијанта
' Изађите ако нема имена
Ако је АцтивеВоркбоок.Намес.Цоунт = 0 Онда
МсгБок „Активна радна свеска нема дефинисана имена.“
Екит Суб
Крај Ако
' Изађите ако је радна свеска заштићена
Ако АцтивеВоркбоок.ПротецтСтруцтуре Онда
МсгБок „Нови лист се не може додати јер је радна свеска заштићена.“
Екит Суб
Крај Ако
' Уметните нови лист за извештај
АцтивеВоркбоок.Ворксхеетс.Адд
АцтивеСхеет.Мове Афтер:=Схеетс(АцтивеВоркбоок.Схеетс.Цоунт)
АцтивеВиндов.ДисплаиГридлинес = Фалсе
' Додајте први ред наслова
Опсег(“А1:Х1”).Споји
Са дометом („А1“)
.Валуе = „Извештај о називу за: „ & АцтивеВоркбоок.Наме
.Величина фонта = 14
.Фонт.Болд = Тачно
.ХоризонталАлигнмент = клЦентер
Завршити
' Додајте други ред наслова
Опсег(“А2:Х2”).Споји
Са дометом („А2“)
.Валуе = „Генерисано“ & сада
.ХоризонталАлигнмент = клЦентер
Завршити
' Додајте заглавља
Опсег(“А4:Х4”) = Низ(“Име”, “РеферсТо”, “Целлс”, _
„Опсег“, „Скривено“, „Грешка“, „Линк“, „Коментар“)
' Прелистајте имена
Ред = 4
У случају грешке Настави даље
За свако н У АцтивеВоркбоок.Намес
Ред = Ред + 1
„Колона А: Име
Ако је н.Наме као „*!*“ Онда
Ћелије(Ров, 1) = Сплит(н.Наме, “!”)(1) ' Уклони назив листа
Иначе
Ћелије(Ред, 1) = н.Име
Крај Ако
„Колона Б: односи се на
Ћелије(Ров, 2) = „'“ & н.РеферсТо
„Колона Ц: Број ћелија
ЦеллЦоунт = ЦВЕРр(клЕррНА) ' Повратна вредност за именовану формулу
ЦеллЦоунт = н.РеферсТоРанге.ЦоунтЛарге
Ћелије(Ров, 3) = Број ћелија
' Колона Д: Обим
Ако је н.Наме као „*!*“ Онда
Ћелије(Ров, 4) = Сплит(н.Наме, “!”)(0) ' назив листа
Ћелије(Ред, 4) = Замени(Ћелије(Ред, 4), „'“, „“) 'уклони апострофе
Иначе
Ћелије (Ред, 4) = „Радна свеска“
Крај Ако
„Колона Е: Скривен статус
Ћелије(Ред, 5) = Није н.Видљиво
„Колона Ф: Погрешан назив
Ћелије (Ред, 6) = н. Односи се на „*[#]РЕФ!*“
„Колона Г: Хипервеза
Ако није Апплицатион.ИсНА(Ћелије(Ред, 3)) Онда
АцтивеСхеет.Хиперлинкс.Адд _
Сидро:=Ћелије(Ред, 7), _
Адреса:=““, _
Подадреса:=н.име, _
ТектТоДисплаи:=н.Наме
Крај Ако
Колона Х: Коментар
Ћелије(Ред, 8) = н.Коментара
Следећи н
' Претворите га у табелу
АцтивеСхеет.ЛистОбјецтс.Адд _
СоурцеТипе:=клСрцРанге, _
Извор:=Распон(“А4”).Тренутни регион
' Подесите ширину колона
Колоне(“А:Х”).ЕнтиреЦолумн.АутоФит
Енд Суб
Генерисање извештаја
Извршите процедуру ГенератеНамеРепорт и извештај се генерише на новом радном листу у активној радној свесци. Код не мора да буде у радној свесци која садржи називе за извештај.
Ако сматрате да је овај код користан, можда ћете желети да га сачувате у Личној радној свесци макроа или да направите додатак.