Ha sok elnevezett cellát és tartományt használ a munkafüzetben, meglepődve tapasztalhatja, hogy az Excel nem teszi lehetővé az egyes nevek részleteinek felsorolását. Hasznos információk jelennek meg a Névkezelő párbeszédpanelen, de nincs mód arra, hogy ezeket az információkat nyomtatható módon jelenítsék meg.
Az itt kínált VBA-kód hasznos jelentést készít, amely leírja a munkafüzetekben meghatározott neveket.
Példa név jelentés
Itt láthat egy példát a névjelentésre.

Az új munkalapon létrehozott jelentés a következő információkat tartalmazza minden névhez:
-
Név: A név.
-
RefersTo: A név meghatározása. Általában ez egy cella vagy tartomány, de egy név képletet is meghatározhat.
-
Cellák: A megnevezett tartományban található cellák száma. Elnevezett képleteknél ez a mező a #N/A értéket jeleníti meg.
-
Hatály: A név hatóköre – vagy munkafüzet, vagy annak a konkrét munkalapnak a neve, amelyen a név érvényes.
-
Rejtett: Igaz, ha a név rejtett. A rejtett neveket egyes bővítmények (például a Solver) hozzák létre, és nem jelennek meg a Névkezelő párbeszédpanelen.
-
Hiba: Igaz, ha a név hibás hivatkozást tartalmaz.
-
Hivatkozás: Hiperhivatkozás, amelyre kattintva aktiválja a megnevezett tartományt. Csak a cellákra vagy tartományokra utaló nevek tartalmaznak hivatkozást.
-
Megjegyzés: A név megjegyzése, ha van.
A VBA kód
A kód használatához nyomja le az Alt+F11 billentyűkombinációt a Visual Basic Editor aktiválásához. Ezután válassza a Beszúrás → Modul lehetőséget egy új VBA-modul beillesztéséhez. Másolja ki a kódot, és illessze be az új modulba.
Sub GenerateNameReport()
' Jelentést generál a munkafüzetben lévő összes névről
' (Nem tartalmazza a táblaneveket)
Dim n As Name
Dim Row As Long
Dim CellCount As Variant
Kilépés, ha nincsenek nevek
Ha ActiveWorkbook.Names.Count = 0 Akkor
MsgBox "Az aktív munkafüzetnek nincsenek meghatározott nevei."
Exit Sub
Vége Ha
' Lépjen ki, ha a munkafüzet védett
Ha ActiveWorkbook.ProtectStructure Akkor
MsgBox "Nem adható hozzá új munkalap, mert a munkafüzet védett."
Exit Sub
Vége Ha
' Helyezzen be egy új lapot a jelentéshez
ActiveWorkbook.Worksheets.Add
ActiveSheet.Move After:=Táblázatok(ActiveWorkbook.Sheets.Count)
ActiveWindow.DisplayGridlines = Hamis
' Adja hozzá a cím első sorát
Tartomány(“A1:H1”). Egyesítés
Tartománnyal ("A1")
.Value = "Névjelentés a következőhöz: " & ActiveWorkbook.Name
.Font.Size = 14
.Font.Bold = Igaz
.HorizontalAlignment = xlCenter
Vége ezzel
' Adja hozzá a cím második sorát
Tartomány(“A2:H2”). Egyesítés
Tartommal ("A2")
.Value = "Létrehozva" & Most
.HorizontalAlignment = xlCenter
Vége ezzel
' Adja hozzá a fejléceket
Tartomány("A4:H4") = Array("Név", "RefersTo", "Cells", _
„Hatókör”, „Rejtett”, „Hiba”, „Link”, „Megjegyzés”)
– Lapozd át a neveket
sor = 4
Hiba esetén Folytatás a következőre
Minden n-hez Az ActiveWorkbook.Namesben
Sor = sor + 1
„A oszlop: Név
Ha n.Név Mint „*!*” Akkor
Cells(Sor, 1) = Felosztás(n.Név, "!")(1) ' Lapnév eltávolítása
Más
Cellák(sor, 1) = n.Név
Vége Ha
„B oszlop: RefersTo
Cells(Sor, 2) = "'" & n.RefersTo
„C oszlop: A cellák száma
CellCount = CVERr(xlErrNA) ' A megnevezett képlet visszatérési értéke
CellCount = n.RefersToRange.CountLarge
Cells(Sor, 3) = CellCount
D oszlop: Hatály
Ha n.Név Mint „*!*” Akkor
Cells(Sor, 4) = Felosztás(n.Név, "!")(0) ' kivonatlap neve
Cells(Sor, 4) = Csere(Cellák(Sor, 4), "'", "") 'eltávolítja az aposztrófokat
Más
Cellák (4. sor) = „Munkafüzet”
Vége Ha
„E oszlop: Rejtett állapot
Cells(Sor, 5) = Nem n.Látható
„F oszlop: Hibás név
Cells(Sor, 6) = n. RefersTo Like „*[#]REF!*”
„G oszlop: Hiperhivatkozás
Ha nem Alkalmazás.IsNA(Cells(Row, 3)) Akkor
ActiveSheet.Hyperlinks.Add _
Horgony:=Cellák (7. sor), _
Cím:=““, _
Alcím:=n.Név, _
TextToDisplay:=n.Name
Vége Ha
„H oszlop: Megjegyzés
Cells(Sor, 8) = n.Megjegyzés
Következő n
' Alakítsa át táblázattá
ActiveSheet.ListObjects.Add _
SourceType:=xlSrcRange, _
Forrás:=Tartomány(“A4”).CurrentRegion
' Állítsa be az oszlopszélességet
Oszlopok („A:H”).Teljes oszlop.Automatikus illeszkedés
Vége Sub
Jelentés generálása
Hajtsa végre a GenerateNameReport eljárást, és a jelentés egy új munkalapon jön létre az aktív munkafüzetben. A kódnak nem kell szerepelnie a jelentés neveit tartalmazó munkafüzetben.
Ha hasznosnak találja ezt a kódot, érdemes lehet tárolni a Személyes makró munkafüzetben, vagy létrehozni egy bővítményt.