Copiar datos sin dejar la celda seleccionada actualmente (Microsoft Excel)
A Henri le gustaría copiar los datos contenidos en una celda de origen a una celda de destino sin dejar la posición actual en la hoja de trabajo.
En otras palabras, le gustaría copiar de la celda A1 a la celda AE459 sin dejar su posición actual en V104. Se pregunta si tal edición es posible.
Por supuesto, el enfoque obvio para esto es simplemente poner la fórmula = A1 en la celda AE459. Luego, Excel se encarga de asegurarse de que las dos celdas sean iguales. También puede abrir una segunda ventana en la hoja de trabajo y encargarse de la copia dentro de esa ventana; la celda seleccionada en la ventana original (celda V104) permanecería sin cambios.
Sin embargo, si realmente desea realizar una operación de «copia» sin abrir una segunda ventana, deberá recurrir a una macro.
Copiar de una celda a otra dentro de una macro es bastante fácil. Por ejemplo, el siguiente ejemplo copiará el contenido de la celda A1 a AE459 sin afectar la celda que haya seleccionado actualmente:
Sub CopyCell1() ' Copy the cell value to destination cell Range("AE459") = Range("A1") End Sub
Si desea copiar una fórmula que se encuentra en la celda A1 al destino, debe modificar cómo se realiza la copia. Específicamente, debe utilizar el método Copiar utilizando el rango de destino como parámetro.
Sub CopyCell2() ' Copy the relative formula to destination Range("A1").Copy Range("AE459") End Sub
Por supuesto, un inconveniente de estas macros es que son estáticas: solo se copian de la celda A1 a la celda AE459. Si sus necesidades de copia pueden variar, es posible que desee considerar realizar la tarea en la ventana Inmediato del Editor de VB. Simplemente abra el editor y escriba la línea única de la macro correspondiente en la ventana. Luego se realiza la copia y puede cerrar el editor, todo sin afectar la celda que haya seleccionado.
Otra forma de proporcionar un poco de flexibilidad en la fuente y el destino de la macro es hacer que (la macro) solicite al usuario la fuente y el destino. La siguiente macro adopta este enfoque.
Sub CopyCell3() Dim SrceCell As String Dim DestCell As String SrceCell = InputBox("Copy From Cell ...") DestCell = InputBox("Copy To Cell ...") Range(DestCell) = Range(SrceCell) End Sub
_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 (9949) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.