Viele Zellen an einen Ort kopieren

Viele Zellen an einen Ort kopieren

Ich verschiebe in Excel häufig Daten. Ich möchte viele beliebige Zellen an einen anderen Ort kopieren können, sodass sie nebeneinander liegen.

Z. B. möchte ich a3, d21, aa32, cd121 usw. kopieren, sodass a3->a1000, d21->b1000, aa32->c1000 usw.

Gibt es hierfür eine einfache Möglichkeit, ohne sie einzeln zu kopieren und dann hin und her zu gehen und jede dieser zufällig ausgewählten Zellen mit großem Aufwand nachzuschlagen?

Die Art von Antwort, auf die ich hoffe: Ich schaue mir diese Zellen (a3, d21 usw.) an und wähle sie einzeln aus, sodass sie alle in einer bestimmten Reihenfolge ausgewählt sind. Dann führe ich „einen Befehl“ aus und klicke dann auf a1000, und sie werden alle nebeneinander kopiert.

Wenn Excel diese Art von Vorgang nicht ausführen kann, was ist dann, wenn diese „zufälligen“ Zellen, die ich kopiere, in derselben Zeile stehen und durch einen festen Abstand getrennt sind? Beispiel: (3 voneinander entfernt) a6, d6, g6, j6, m6 usw. -> a10, b10, c10 usw.

Teil 2.)

Was wäre, wenn ich sie nicht nebeneinander kopieren, sondern so kopieren möchte, dass sie für eine positive Ganzzahl k beispielsweise k Spalten voneinander entfernt sind?

Z. B. (k=4) a3,d21,aa32,cd121, usw. -> a1000,e1000,i1000,m1000,q1000, usw.

oder, wenn das nicht möglich ist, was ist mit Zellen in der gleichen Reihe mit einem Abstand von j bis k.

Z. B. (j=3,k=4) a6,d6,g6,j6,m6, usw. -> a10,e10,i10,m10,q10, usw.

Antwort1

VBA ist Ihr Freund. Wenn VBA aus irgendeinem Grund keine Option ist, können Sie den Bildschirm teilen und Ihre Quellzellen oben und Ihre Zielzellen unten anzeigen (oder umgekehrt).

Vertikal teilen (durch eine horizontale Linie):
Vertikal teilen (durch eine horizontale Linie)

Das Gegenteil:
Das Gegenteil

Das Endergebnis mit 4 separaten Bildschirmen:
Das Endergebnis mit 4 separaten Bildschirmen

Antwort2

Wenn Sie VBA noch nie ausprobiert haben, stelle ich Ihnen meinen Beispielcode zur Verfügung. Da Ihre Frage viele Optionen enthielt, bin ich sicher, dass Sie den Code nach der Analyse an Ihre Bedürfnisse anpassen können. Ich habe das auch kommentiert, um Ihnen das Lernen zu erleichtern.

Erstellen Sie zunächst ein neues Modul (Einfügen>Modul)

Und fügen Sie dann den Code ein:

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

Aus irgendeinem Grund können Sie hier keine Farben sehen. Aber in VBE werden Sie sie sehen.

Viel Glück!

verwandte Informationen