Uff. Deine Beschreibung ist verwirrend geschrieben.
ich würde gerne einen bestehenden Code ausbauen. Der bisherige kopiert den Wert aus Spalte A1 in die Spalte 20 und fügt darüber eine neue Spalte ein.
Spalten (Columns) sind in Excel - in der A1-Schreibweise - in Buchstaben angegeben - z.B. Spalte A, Spalte AA, Spalte EFA, usw.
Zeilen (Rows) sind in Excel - in der A1-Schreibweise - als Ganze Zahlen angegeben (beginned bei 1) - z.B. 1, 5, 100, usw.
Zellen (Cells) sind in Excel - in der A1-Schreibweise - als eine Kombination aus Spalte und Zeile angegeben - z.B: A1, AA5, EFA100, usw.
Ein Bereich (Range) in Excel - in der A1-Schreibweise - ist eine Angabe aus zwei Zellen - z.B. A1:C3 (das sind die Zellen A1, A2, A3; B1, B2, B3; C1, C2, C3)
Man kann sich auch auf ganze Spalte beziehen - z.B. Spalte A bis C wäre als Bereich A:C (analog dazu Zeilen; z.B. Zeile 1 bis 3 wäre 1:3 )
Es ist nun üblich, sich nicht auf eine gesamte Spalte zu beziehen (weil das verdammt viele Zellen sind, ca. über eine Millionen Zellen je Spalte). Darum beschränkt man sich auf die Zellen die auch einen Inhalt haben, und diesen Bereich ermittelt man z.B. so:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | Option Explicit
Sub test()
Dim Bereich As Range
With Worksheets( "Tabelle1" )
Set Bereich = .Range( "A2" , .Cells(.Rows.Count, "A" ). End (xlUp))
If Bereich.Row < 2 Then
Exit Sub
End If
End With
Dim Zelle As Range
For Each Zelle In Bereich.Cells
Debug.Print Zelle.Address, Zelle.Value
Next
End Sub
|
Nun schau dir bitte noch mal an was bei dir im Makro genau macht wird.
Mit den obigen Erklärungen, solltest du in der Lage sein dein Makro aufzubarbeiten / korrigieren zu können.
BG
|