Tipp 0381
|
Zeilen und Spalten verschieben
|
|
|
Autor/Einsender: Datum: |
|
R. Müller 03.02.2004 |
|
Entwicklungsumgebung: |
|
Excel 97 |
|
|
In diesem Tipp werden verschiedene Möglichkeiten gezeigt, wie einzelne oder mehrere Zeilen und Spalten innerhalb eines Tabellenblatts verschoben werden können, oder aber auch von einem Tabellenblatt zu einem anderen.
|
|
Beispiel 1.1: Zeile innerhalb eines Tabellenblatts verschieben |
|
|
Sub ShiftRowInWorksheet()
Dim lngRowSource As Long
Dim lngRowTarget As Long
lngRowSource = 3
lngRowTarget = 7
With ActiveWorkbook.Worksheets(1)
.Rows(lngRowSource).Cut
.Rows(lngRowTarget).Insert Shift:=xlShiftDown
End With
End Sub
|
|
|
Beispiel 1.2: Zeile von einem Tabellenblatt in ein anderes Tabellenblatt
verschieben |
|
|
Sub ShiftRowToWorksheet()
Dim wksSource As Worksheet
Dim wksTarget As Worksheet
Dim lngRowSource As Long
Dim lngRowTarget As Long
lngRowSource = 5
lngRowTarget = 7
Set wksSource = ActiveWorkbook.Worksheets(1)
Set wksTarget = ActiveWorkbook.Worksheets(2)
wksSource.Rows(lngRowSource).Cut
wksTarget.Rows(lngRowTarget).Insert Shift:=xlShiftDown
wksSource.Rows(lngRowSource).EntireRow.Delete
Set wksTarget = Nothing
Set wksSource = Nothing
End Sub
|
|
|
Beispiel 1.3: Mehrere Zeilen innerhalb eines Tabellenblatts verschieben |
|
|
Sub ShiftRowsInWorksheet()
Dim lngRowSource As Long
Dim lngRowsCount As Long
Dim lngRowTarget As Long
lngRowSource = 5
lngRowsCount = 10
lngRowTarget = 37
With ActiveWorkbook.Worksheets(1)
.Range(.Rows(lngRowSource), _
.Rows(lngRowSource + lngRowsCount - 1)).Cut
.Rows(lngRowTarget).Insert Shift:=xlShiftDown
End With
End Sub
|
|
|
Beispiel 2.1: Spalte innerhalb eines Tabellenblatts verschieben |
|
|
Sub ShiftColumnInWorksheet()
Dim lngColSource As Long
Dim lngColTarget As Long
lngColSource = 3
lngColTarget = 7
With ActiveWorkbook.Worksheets(1)
.Columns(lngColSource).Cut
.Columns(lngColTarget).Insert Shift:=xlToRight
End With
End Sub
|
|
|
Beispiel 2.2: Spalte von einem Tabellenblatt in ein anderes Tabellenblatt verschieben |
|
|
Sub ShiftColumnToWorksheet()
Dim wksSource As Worksheet
Dim wksTarget As Worksheet
Dim lngColSource As Long
Dim lngColTarget As Long
lngColSource = 3
lngColTarget = 3
Set wksSource = ActiveWorkbook.Worksheets(1)
Set wksTarget = ActiveWorkbook.Worksheets(2)
wksSource.Columns(lngColSource).Cut
wksTarget.Columns(lngColTarget).Insert Shift:=xlToRight
wksSource.Columns(lngColSource).EntireColumn.Delete
Set wksTarget = Nothing
Set wksSource = Nothing
End Sub
|
|
|
Beispiel 2.3: Mehrere Spalten innerhalb eines Tabellenblatts verschieben |
|
|
Sub ShiftColumnsInWorksheet()
Dim lngColSource As Long
Dim lngColsCount As Long
Dim lngColTarget As Long
lngColSource = 2
lngColsCount = 3
lngColTarget = 8
With ActiveWorkbook.Worksheets(1)
.Range(.Columns(lngColSource), _
.Columns(lngColSource + lngColsCount - 1)).Cut
.Columns(lngColTarget).Insert Shift:=xlToRight
End With
End Sub
|
|
|
|
Im Download befinden sich zwei *.bas-Dateien, die in Excel im VB-Editor importiert werden können.
|
|