Copia de rangos con nombre (Microsoft Excel)
Graeme tiene un libro de trabajo que tiene una gran cantidad (120+) rangos con nombre definidos dentro de él. Le gustaría copiar los nombres de rango y las definiciones en un libro de trabajo diferente. Por lo tanto, después de copiar, el rango denominado MyRange1 que se refiere al rango C7: H22 en el libro de trabajo original existirá en el libro de trabajo de destino y se referirá al mismo rango, en el libro de trabajo de destino.
No se debe copiar nada más del libro de trabajo original al destino, solo los nombres de rango y las definiciones.
La forma más sencilla de hacer esto es con una macro que recorre cada uno de sus nombres definidos y copia la definición del nombre en el libro de trabajo de destino. Aquí tienes un ejemplo:
Sub CopyNames() Dim Source As Workbook Dim Target As Workbook Dim n As Name Set Source = ActiveWorkbook Set Target = Workbooks("Book2.xlsx") For Each n In Source.Names Target.Names.Add Name:=n.Name, RefersTo:=n.Value Next End Sub
Tenga en cuenta que la mayor parte del trabajo en la macro se realiza en el ciclo For Each que recorre todos los nombres definidos. Crea el nombre en el libro de trabajo de destino y le asigna la misma asignación que tenía en el libro de trabajo de origen (contenido en la propiedad Value).
Cabe señalar que, de forma predeterminada, los rangos con nombre incluyen el nombre de la hoja de trabajo en la propiedad Valor. Si el libro de trabajo de origen tiene un rango con nombre que se refiere, por ejemplo, a Sheet4 y no hay ningún Sheet4 en el libro de trabajo de destino, la adición del nombre falla. La macro no genera un error; simplemente no crea el nuevo rango con nombre. La solución es (a) asegurarse de que el libro de trabajo de destino contiene los mismos nombres de hoja que el libro de trabajo de origen o (b) modificar la macro para que reconozca que faltan hojas y tome cualquier acción apropiada.
Si prefiere no crear una macro, entonces el método más fácil puede ser copiar sus hojas de trabajo del libro de trabajo de origen a un libro de trabajo de destino.
Excel generalmente copia los rangos nombrados junto con las hojas de trabajo. La única vez que esto no sería un enfoque satisfactorio es si el libro de trabajo de destino ya tiene hojas de trabajo con los mismos nombres que esas hojas de trabajo que tal vez desee copiar. En ese caso, sería mejor utilizar el enfoque macro.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (8811) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
enlace: / excel-Copying_Named_Ranges [Copiando rangos con nombre]
.