Creación de un informe con el nombre de código vba

Si utiliza una gran cantidad de celdas y rangos con nombre en el libro de trabajo, es posible que se sorprenda al descubrir que Excel no proporciona ninguna manera para enumerar los detalles de cada nombre. información útil aparece en el cuadro de diálogo Administrador de nombres, pero no hay manera de mostrar esta información de una manera que se puede imprimir.

Video: Macro Excel para Crear PDF

El código VBA que aquí se ofrecen genera un informe útil que describe los nombres definidos en cualquier libro.

Ejemplo Nombre del informe

A continuación, puede ver un ejemplo de un nombre de informe.

El informe, que se crea en una nueva hoja de cálculo, incluye la siguiente información para cada nombre:

Nombre: El nombre.

  • Se refiere a: La definición para el nombre. Por lo general, esto será una celda o rango, sino un nombre también puede definir fórmula.

  • Células: El número de células contenidas en el rango con nombre. Para las fórmulas nombradas, este campo muestra # N / A.

  • Alcance: El alcance del nombre - ya sea libro o el nombre de la hoja de trabajo específico en el que el nombre es válido.

  • Oculto: Es cierto que si el nombre está oculto. los nombres ocultos son creados por algunos complementos (como Solver), y no aparecen en el cuadro de diálogo Administrador de nombres.

  • Error: Es cierto que si el nombre contiene una referencia errónea.

  • Enlazar: Un hipervínculo que, al hacer clic, activa el rango con nombre. Solamente los nombres que se refieren a las células o intervalos incluyen un enlace.

  • Comentario: El comentario para que el nombre, si lo hay.

    Video: Búsqueda inteligente en un formulario de Excel vba

  • El código VBA

    Para utilizar este código, presione Alt + F11 para activar el Editor de Visual Basic. A continuación, seleccione Insertar → Módulo para insertar un nuevo módulo de VBA. Copiar el código y pegarlo en el nuevo módulo.

    Sub GenerateNameReport () `Genera un informe de todos los nombres en el libro` (No incluye los nombres de tabla) n Dim Como NameDim fila como LongDim CellCount Como variante Salir` si no hay namesIf ActiveWorkbook.Names.Count = 0 ThenMsgBox “El libro activo tiene sin nombres definidos.”Salir SubEnd Si `Salir si el libro es protectedIf ActiveWorkbook.ProtectStructure ThenMsgBox‘una nueva hoja no se puede añadir debido a que el libro está protegido.’Salir SubEnd Si` Insertar una nueva hoja para el reportActiveWorkbook.Worksheets.AddActiveSheet.Move Después : = Sheets (ActiveWorkbook.Sheets.Count) ActiveWindow.DisplayGridlines = False` Agregar primera línea de titleRange ( ‘A1: H1’) MergeWith Range ( ‘A1’) = Valor.. “Nombre del informe para:“ & ActiveWorkbook.Name.Font.Size = = 14.Font.Bold True.HorizontalAlignment = xlCenterEnd Con ‘Añadir segunda línea de titleRange (‘A2: H2’) MergeWith Range (‘A2’) Valor =“generada “.. & Now.HorizontalAlignment = xlCenterEnd Con` Agregar el headersRange ( ‘A4: H4’) = Array ( ‘Nombre’, ‘RefersTo’, ‘células’, _ ‘Alcance’, ‘Oculto’, ‘Error’, ‘Enlace’, “ comentario”)` Recorrer el Error Resume namesRow = 4en NextFor Cada n = Fila En ActiveWorkbook.NamesRow + 1`Column A: nameif n.Name al igual que‘* *’ThenCells (fila, 1) = Parcial (n.Name, ) (1) `Eliminar nameElseCells hoja (fila, 1) = n.NameEnd If`Column B: RefersToCells (fila, 2) = “” “`” & n.RefersTo`Column C: Número de cellsCellCount = CVErr (xlErrNA) `Valor de retorno para formulaCellCount = n.RefersToRange.CountLargeCells (fila, 3) = CellCount nombradas` Columna D: ScopeIf n.Name Al igual que “* *” ThenCells ( Row, 4) = de Split (n.Name, “!”) (0) `nameCells hoja de extracto (fila, 4) = Reemplazar (células (fila, 4), “`”, ““) `eliminar apostrophesElseCells (fila, 4) = “Cuaderno” Fin If`Column E: statusCells ocultos (fila, 5) = No n.Visible`Column F: Erroroneous nameCells (fila, 6) = n.RefersTo Como “* [#] * REF!”` columna G: HyperlinkIf No Application.IsNA (células (fila, 3)) ThenActiveSheet.Hyperlinks.Add _Anchor: = células (fila, 7), _Address: = ““, _SubAddress: = n.Name, _TextToDisplay: = n.NameEnd If`Column H: CommentCells (fila, 8) = n.CommentNext n `Convertir a un tableActiveSheet.ListObjects.Add _SourceType: = xlSrcRange, _Source:. = Range ( ‘A4’) CurrentRegion` Ajuste los widthsColumns de columna ( “a : H”) EntireColumn.AutoFitEnd Sub.

    Generación de un informe

    ejecutar el GenerateNameReport procedimiento, y el informe se genera en una nueva hoja de cálculo del libro activo. El código no tiene que estar en el libro que contiene los nombres para el informe.

    Si usted encuentra este código útil, es posible que desee almacenar en su libro de macros personal, o crear un complemento.

    Artículos Relacionados