
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):
Das Gegenteil:
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!