Copiar muchas celdas en una ubicación

Copiar muchas celdas en una ubicación

Transfiero muchos datos en Excel. Quiero poder copiar muchas celdas aleatorias en otra ubicación para que estén una al lado de la otra.

Por ejemplo, quiero copiar a3,d21,aa32,cd121,etc. de modo que a3->a1000,d21->b1000,aa32->c1000,etc.

¿Existe una manera fácil de hacer esto además de copiarlas una por una y avanzar y retroceder durante mucho tiempo buscando cada una de estas celdas aleatorias?

El tipo de respuesta que espero: busco estas celdas (a3,d21,etc.) y las selecciono una a la vez para que todas estén seleccionadas en un orden. Luego hago "algún comando" y luego hago clic en a1000 y todos se copian uno al lado del otro.

Si Excel no puede realizar este tipo de operación, ¿qué pasa si estas celdas "aleatorias" que estoy copiando están en la misma fila y separadas por una distancia fija? Por ejemplo (3 aparte) a6,d6,g6,j6,m6,etc. -> a10,b10,c10,etc.

Parte 2.)

¿Qué pasa si en lugar de copiarlos uno al lado del otro, quiero copiarlos de modo que estén, digamos, k columnas separadas para algún entero positivo k?

Por ejemplo (k=4) a3,d21,aa32,cd121,etc. -> a1000,e1000,i1000,m1000,q1000,etc.

o si eso no es posible, ¿qué pasa con las celdas en la misma fila separadas entre j y k?

Por ejemplo (j=3,k=4) a6,d6,g6,j6,m6,etc. -> a10,e10,i10,m10,q10,etc.

Respuesta1

VBA es tu amigo. Si, por alguna razón, VBA no es una opción, puede dividir la pantalla y mirar las celdas de origen en la parte superior y las de destino en la parte inferior (o viceversa).

Dividir verticalmente (por una línea horizontal):
Dividir verticalmente (por una línea horizontal)

Lo contrario:
Lo contrario

El resultado final con 4 pantallas separadas:
El resultado final con 4 pantallas separadas.

Respuesta2

Si nunca probó VBA, le proporcionaré mi código de muestra. Como tenías muchas opciones en tu pregunta, estoy seguro que después de analizar el código podrás adaptarlo a tus necesidades. También lo he comentado para ayudarte a aprender.

Primero, cree un nuevo módulo (Insertar>Módulo)

Y luego pon el código dentro:

Option Explicit   ' no matter what, this is a must have line in every case

Sub test()

    ' declaring variables
    Dim rngSource As Range
    Dim rngTarget As Range
    Dim i As Long
    Const k As Long = 4 ' this is the k from your example
    Dim cell As Range

    ' choosing source cells
    Set rngSource = Application.InputBox(prompt:="Choose cells, use Ctrl", Type:=8)
    ' choosing destination cell
    Set rngTarget = Application.InputBox(prompt:="Select the 1st target cell", Type:=8)

    ' iterating through every cell in Source selection
    i = 0
    For Each cell In rngSource
        ' writing value
        rngTarget.Offset(0, i).Value = cell.Value
        i = i + k
    Next

End Sub

Por alguna razón no puedes ver los colores aquí. Pero en VBE los verás.

¡Buena suerte!

información relacionada