Copiando muitas células para um local

1

Eu transfiro dados em um lote no Excel. Eu quero ser capaz de copiar muitas células aleatórias para outro local para que elas fiquem lado a lado.

Por exemplo Eu quero copiar a3, d21, aa32, cd121, etc. de modo que a3- > a1000, d21- > b1000, aa32- > c1000, etc.

Existe uma maneira fácil de fazer isso, além de copiá-los um por um e ir e voltar levando muito tempo procurando cada uma dessas células aleatórias?

O tipo de resposta que espero: Eu vou procurar essas células (a3, d21, etc) e selecioná-las uma de cada vez para que elas sejam todas selecionadas em uma ordem. Então eu faço "algum comando" e, em seguida, clico em a1000 e eles são todos copiados lado a lado.

Se o Excel não conseguir fazer esse tipo de operação, e se essas células "aleatórias" que estou copiando estiverem na mesma linha e separadas por uma distância fixa. Por exemplo. (3 separados) a6, d6, g6, j6, m6, etc. - > a10, b10, c10, etc.

Parte 2.)

E se em vez de copiá-los lado a lado, eu quero copiá-los para que eles sejam, digamos, k colunas separadas para um inteiro positivo k.

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

ou se isso não for possível, o que acontece com as células na mesma linha j para k apart.

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

    
por domoremath 20.05.2015 / 23:22

2 respostas

0

VBA é seu amigo. Se, por algum motivo, o VBA não for uma opção, você pode dividir a tela e examinar suas células de origem na parte superior e no destino na parte inferior (ou vice-versa).

Divida verticalmente (por uma linha horizontal):

Ooposto:

O resultado final com 4 telas separadas:

    
por 20.05.2015 / 23:55
0

Se você nunca tentou o VBA, fornecerei meu código de amostra. Como você tinha muitas opções em sua pergunta, tenho certeza de que, depois de analisar o código, você poderá adaptá-lo às suas necessidades. Eu também comentei para ajudá-lo a aprender.

Primeiro, crie um novo módulo ( Inserir > Módulo )

Em seguida, insira o código:

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 algum motivo, você não pode ver cores aqui. Mas no VBE você vai vê-los.

Boa sorte!

    
por 21.05.2015 / 00:26