Otro problema de copia en Excel:
¿Cómo puedo copiar una hoja de trabajo de WorkbookA.xlsx en WorkbookB.xlsx sin que la hoja de trabajo copiada siga haciendo referencia a WorkbookA.xlsx, por ejemplo, la fórmula se =B!23
convierte =[WorkbookA.xlsx]!B!23
cuando se copia?
Quiero mantener referencias de celda "relativas" en lugar de referencias de celda "absolutas" (inventaré esta terminología en el mundo de Excel si aún no existe).
Otra alternativa posible que no puedo hacer que funcione es la opción de pegar solo "valores" de celda. Excel trata los "valores" como valores calculados en lugar de las fórmulas reales en la celda. Si elijo la fórmula de pegar, todavía da referencias absolutas.
Más información acerca de por qué necesito esto: Tengo un xlsx de producción en uso para las operaciones diarias. Necesitamos constantemente hacer "actualizaciones" a este xlsx, por lo que una persona puede crear una copia y sus cambios allí para una sola hoja. Al mismo tiempo, otra persona también puede estar haciendo cambios a otra hoja. Dado que estas hojas no tienen celdas dependientes en otras hojas , como un informe resumido, es conveniente para nosotros copiar y fusionar las hojas nuevamente en el xlsx original. Pero la referencia "absoluta" está dando muchos problemas.
select all - copy - paste special - values
para que solo tenga valores. Si desea hacerlo todo durante la copia en lugar de confiar en que el usuario final realice esos pasos, bueno, he estado trabajando en eso. Háganos saber exactamente cómo quiere que vaya en términos de WorkbookA (o 1) y WBB (2) y la hoja #sRespuestas:
Intente usar Ctrl+ ~para mostrar las fórmulas. Luego use Ctrl+ Apara seleccionar todo, cópielo y luego péguelo en el bloc de notas.
Finalmente, cópielo del bloc de notas y péguelo en su otro libro de trabajo.
fuente
Me ha resultado más fácil, en muchos casos, hacer lo siguiente:
[WorkbookA.xlsx]!
fuente
La respuesta sin firmar justo debajo de esta es la que funcionó para mí, con una variación muy leve.
Crea y guarda una hoja de cálculo de destino.
Use "mover", "copiar" o arrastre su página con las fórmulas a la nueva hoja de cálculo. Esto deja las fórmulas en la nueva página apuntando a la hoja de trabajo anterior. Luego guarde la nueva hoja de cálculo en la misma ubicación que la hoja de trabajo anterior.
Luego vaya a la pestaña Datos> haga clic en Editar enlaces. La opción no estará activa a menos que haya enlaces en la página.
En el cuadro de diálogo que aparece, seleccione el nombre del archivo fuente y haga clic en "Cambiar fuente".
En el cuadro de diálogo de archivo abierto que aparece a continuación, seleccione el nombre de la nueva hoja de cálculo.
Haga clic en Cerrar y habrá terminado.
fuente
O simplemente haga lo siguiente:
Convierte esto:
a esto:
y no más cambios en sus referencias cuando copia entre hojas de trabajo.
Si no tiene muchas hojas referenciadas, otra alternativa sería usar
e ingrese el nombre de la hoja de referencia en la celda B1. Ahora solo tiene una celda para actualizar cuando se copia a la nueva hoja de cálculo.
fuente
INDIRECT
es una fórmula volátil, por lo que se volverá a calcular cada vez (en lugar de solo cuando se edite), lo que realmente puede ralentizar los libros de trabajo más complejos, así que úselo con precauciónEl siguiente código se puede adaptar a sus necesidades. Toma todas las fórmulas de la hoja
wb1
y las aplica a una hoja en un nuevo libro de trabajo. Las fórmulas se aplican comoString
s, por lo que no hay inserción de referencias al libro de trabajo original. Además, este código es súper rápido porque no usa el portapapeles y no requiere ningún bucle a través de las celdas.fuente
Dado que el 99% de las respuestas ni siquiera abordaron la pregunta original, aquí está la respuesta adecuada.
Copie las hojas del archivo original (Original.xlsx) al nuevo archivo de Excel (New.xlsx) como lo haría normalmente. Generalmente, hago clic derecho en el nombre y elijo "Mover o Copiar ...".
Guarde el segundo archivo recién creado (New.xlsx).
En el nuevo archivo, en Datos, haga clic en "Editar enlaces"
En la ventana emergente, elija "Cambiar fuente ..."
Localice el archivo (New.xlsx) y haga clic en Abrir.
Se eliminarán todas las referencias al original (Original.xlsx).
¡HECHO!
fuente
Esto funciona para mi.
fuente
Ambos libros de trabajo deben estar abiertos para que esto funcione . Ejecuta esta macro y copiará
workbookA!sheet
1workbookB!sheet1
y luego reemplazará todas lasworkbookA
referencias. Es crudo, pero funciona . Obviamente, puede cambiar el código para que coincida con sus nombres WorkbookA.xlsx, pero asegúrese de que tengan la extensión correcta y que permanezcan entre comillas.Ah, para hacer una macro, en caso de que no lo sepas, presiona alt + F11para abrir el Editor de Visual Basic. Luego haga clic derecho en WBA
insert - module
y copie y pegue el siguiente código en el módulo. Luego presione F5para ejecutar la macro. Si la macro no se ejecuta, probablemente sea porque las macros no están habilitadas, así que adelante, guárdelo y vuelva a abrirlo, y cuando se le solicite habilitar macros, actívelas.fuente
CTRL+H
ahora estoy manualmente , pero todo esto no repara las referencias para los controles, por ejemplo, botones, menús desplegables y demás; y rangos con nombre.Logré esto copiando las celdas a la nueva hoja de trabajo de forma normal, luego buscando y reemplazando para eliminar la ruta del archivo anterior en las fórmulas.
Por ejemplo, si la primera fórmula es
=J2
y esto se convierte=[filepath]J2
, entonces solo busque y reemplace toda la nueva hoja de cálculo[filepath]
y reemplácela por nada. Esto lo elimina y restaura la fórmula a=J2
.¡No se requiere VB!
fuente
Estaba teniendo un problema similar La razón por la que las fórmulas se pegaron con el enlace a WBA fue que la pestaña (hoja) en la que estaba trabajando en WBA se llamaba de manera diferente a la de WBB. Para mí, siempre fue "la última hoja", pero una se llamaba 'MinFlow' y la otra se llamaba 'NormalFlow'. Cambié el nombre de ambos a 'Resultados' y la copia / pegado funcionó como quería: un "pegado relativo".
fuente
Seleccione las celdas que desea mover. Ahora intente moverlos arrastrando y soltando a una hoja de trabajo diferente (pestaña diferente).
Lo sé, se desplaza. Aquí está la parte difícil: simplemente presione cmd (mac) o alt (win) y le permitirá colocar las celdas en otra pestaña.
fuente
Hola, aquí hay una solución simple para este problema:
CTRL+F
y seleccione la pestaña reemplazar.Replace with
campo, presioneReplace All
.Voila, está hecho.
fuente
Otro 'truco': antes de copiar la hoja de trabajo de origen, reemplace todos los calificadores de fórmula
=
con otro conjunto de caracteres (digamos###=
).Copie la hoja de trabajo, luego, después de copiar, reemplace el calificador de fórmula (reemplazando
###=
con=
).Asegúrese de que las referencias de las hojas dentro de los formularios también se copien en la nueva hoja antes de la hoja de referencia.
fuente
Copie la hoja como de costumbre. (haga clic derecho en la pestaña y vaya a 'mover o copiar') Esto es para formatear.
Copie todas las celdas de la hoja original (usando Ctrl+ Ao triángulo superior izquierdo y Ctrl+ C)
Pegar como valores en el nuevo libro de trabajo (sobre la hoja "paso-1") (Opciones de pegado> 123)
fuente
Si necesita hacer esto automáticamente porque está extrayendo hojas en un programa VBA. Utilizar esta:
Simplemente cambie "Cadena encontrada en el nombre del libro fuente". para que coincida con los enlaces antiguos que desea reemplazar. Puede eliminar ese bloque si desea reemplazar todos los enlaces.
fuente
Abra ambos libros de trabajo. En el libro de trabajo de origen (WorkbookA.xlsx), seleccione la hoja que desea copiar. Haga clic derecho en la pestaña de la hoja y seleccione "Mover o Copiar ...". En el cuadro de diálogo "Mover o copiar", seleccione "WorkbookB.xlsx" en el menú desplegable "Al libro", elija en qué lugar del libro desea colocarlo y marque "Crear una copia". (Y haga clic en "Aceptar").
fuente
Haga una copia de la hoja de la que desea mover las hojas, en este caso sería WorkbookA.xlsx. Cambie el nombre para que diga "Copia de WorkbookA.xlsx". Ahora abra este nuevo libro de trabajo, así como el libro de trabajo al que desea mover la hoja, que en este caso sería WorkbookB.xlsx. Haga clic con el botón derecho en las hojas del libro de copias que creó, es decir, Copia de WorkbookA.xlsx y seleccione 'mover o copiar' y luego mueva estas hojas a WorkbookB.xlsx. Estás listo !
fuente