Nëse përdorni shumë qeliza dhe vargje të emërtuara në librin tuaj të punës, mund të habiteni kur zbuloni se Excel nuk ofron asnjë mënyrë për të renditur detajet për secilin emër. Informacioni i dobishëm shfaqet në kutinë e dialogut Menaxheri i emrave, por nuk ka asnjë mënyrë për të shfaqur këtë informacion në një mënyrë që mund të printohet.
Kodi VBA i ofruar këtu gjeneron një raport të dobishëm që përshkruan emrat e përcaktuar në çdo libër pune.
Shembull Raporti i Emrit
Këtu, ju shihni një shembull të një Raporti Emri.
Raporti, i cili krijohet në një fletë pune të re, përfshin informacionin e mëposhtëm për secilin emër:
-
Emri: Emri.
-
RefersTo: Përkufizimi për emrin. Zakonisht, kjo do të jetë një qelizë ose varg, por një emër mund të përcaktojë gjithashtu formulën.
-
Qelizat: Numri i qelizave të përfshira në diapazonin e emërtuar. Për formulat e emërtuara, kjo fushë shfaq #N/A.
-
Fushëveprimi: Shtrirja e emrit - ose Libri i punës, ose emri i fletës specifike të punës në të cilën emri është i vlefshëm.
-
Fshehur: E vërtetë nëse emri është i fshehur. Emrat e fshehur krijohen nga disa shtesa (si p.sh. Solver) dhe nuk shfaqen në kutinë e dialogut Name Manager.
-
Gabim: E vërtetë nëse emri përmban një referencë të gabuar.
-
Lidhja: Një hiperlidhje që, kur klikohet, aktivizon gamën e emërtuar. Vetëm emrat që u referohen qelizave ose vargjeve përfshijnë një lidhje.
-
Koment: Komenti për emrin, nëse ka.
Kodi VBA
Për të përdorur këtë kod, shtypni Alt+F11 për të aktivizuar Visual Basic Editor. Pastaj zgjidhni Insert → Module për të futur një modul të ri VBA. Kopjoni kodin dhe ngjisni atë në modulin e ri.
Nën GenerateNameReport()
' Gjeneron një raport për të gjithë emrat në librin e punës
' (Nuk përfshin emrat e tabelave)
Dim n As Emër
Rreshti i zbehtë për aq kohë sa
Numërimi i zbehtë i qelizave si variant
Dilni nëse nuk ka emra
Nëse ActiveWorkbook.Emrat.Count = 0 Pastaj
MsgBox "Libri aktiv i punës nuk ka emra të përcaktuar."
Dilni Nën
Fundi Nëse
' Dil nëse libri i punës është i mbrojtur
If ActiveWorkbook.ProtectStructure Pastaj
MsgBox "Nuk mund të shtohet një fletë e re sepse libri i punës është i mbrojtur."
Dilni Nën
Fundi Nëse
Fusni një fletë të re për raportin
ActiveWorkbook.Fletët e punës.Add
ActiveSheet.Move After:=Fletë(ActiveWorkbook.Sheets.Count)
ActiveWindow.DisplayGridlines = False
Shto rreshtin e parë të titullit
Gama (“A1:H1”). Shkrirja
Me diapazon ("A1")
.Vlera = “Raporti i emrit për: “ & ActiveWorkbook.Emri
.Fonti.Madhësia = 14
.Font.Bold = E vërtetë
.Horizontal Alignment = xlQendra
Fund Me
Shto rreshtin e dytë të titullit
Gama ("A2:H2"). Bashkoni
Me diapazon ("A2")
.Vlera = "Generated " & Tani
.Horizontal Alignment = xlQendra
Fund Me
' Shtoni titujt
Gama ("A4:H4") = Vargu ("Emri", "RefersTo", "Qelizat", _
"Qëllimi", "I fshehur", "Gabim", "Lidhje", "Koment")
' Shikoni emrat
Rreshti = 4
Në gabim Rifillo Tjetra
Për çdo n Në ActiveWorkbook.Emrat
Rreshti = Rreshti + 1
Kolona A: Emri
Nëse n.Emri Like “*!*” Atëherë
Cells(Rresht, 1) = Split(n.Emri, “!”)(1) ' Hiq emrin e fletës
Përndryshe
Cells(Rresht, 1) = n.Emri
Fundi Nëse
Kolona B: Referohet
Cells(Rresht, 2) = “'“ & n.RefersTo
Kolona C: Numri i qelizave
CellCount = CVERr(xlErrNA) ' Kthimi i vlerës për formulën e emërtuar
Numri i qelizave = n.RefersToRange.CountLarge
Cells (Rresht, 3) = Numri i qelizave
Kolona D: Fushëveprimi
Nëse n.Emri Like “*!*” Atëherë
Cells(Rresht, 4) = Ndarje(n.Emri, “!”)(0) ' emri i fletës ekstrakt
Cells (Rresht, 4) = Zëvendësoni (Qelizat (Rresht, 4), "'", "") 'fshini apostrofat
Përndryshe
Cells (Rreshti, 4) = "Fletore pune"
Fundi Nëse
Kolona E: Statusi i fshehur
Cells(Rresht, 5) = Jo n.E dukshme
Kolona F: Emër i gabuar
Cells (Rresht, 6) = n. RefersTo Like "*[#]REF!*"
Kolona G: Hiperlidhja
Nëse Jo Aplikimi.IsNA(Qelizat(Rreshti, 3)) Pastaj
ActiveSheet.Hyperlinks.Add _
Ankorimi:=Qelizat (Rresht, 7), _
Adresa:=““, _
Nënadresa:=n.Emri, _
TextToDisplay:=n.Emri
Fundi Nëse
Kolona H: Koment
Cells(Rresht, 8) = n.Koment
Tjetra n
"Konvertojeni atë në një tabelë
ActiveSheet.ListObjects.Add _
Source Type:=xlSrcRange, _
Burimi:=Range(“A4”).Rajoni aktual
' Rregulloni gjerësinë e kolonës
Kolonat("A:H").E gjithë kolona.AutoFit
Fundi Nën
Gjenerimi i një raporti
Ekzekutoni procedurën GenerateNameReport dhe raporti gjenerohet në një fletë pune të re në librin aktiv të punës. Kodi nuk duhet të jetë në librin e punës që përmban emrat për raportin.
Nëse ju duket i dobishëm ky kod, mund të dëshironi ta ruani atë në Librin e Punës tuaj Personale të Macro-së ose të krijoni një shtesë.