![]() |
Betrifft: .Columns(x).Copy mit Offset?
von: Robert
Geschrieben am: 18.08.2014 11:17:36
Hallo zusammen,
Ich seh mal wieder den Wald vor lauter Bäumen nicht. oder vielmehr finde ich den richtigen Baum vor Lauter Wald nicht.
Ich kopiere in ein Konsolidierungsfile Einzelne Spalten von verschiedenen Tabellen zusammen, bevor ich dann den Rest der Tabelle mittels Programm zusammensetze.
Nun will ich alle Daten dieser Spalte inkl. Header kopieren, die Überschrift steht aber erst in Zeile 7.
Ich Bräuchte also eine einfache möglichkeit folgendes:
Tabelle1.Columns(24).Copy
![]() ![]() |
Betrifft: AW: .Columns(x).Copy mit Offset?
von: Daniel
Geschrieben am: 18.08.2014 11:36:24
Hi
Tabelle1.Range(Tabelle1.Cells(7, 24), Tabelle1.Cells(tabelle1.cells.specialcells(xlcelltypelastcell).row, 24)).copy
Gruß Daniel
![]() ![]() |
Betrifft: AW: .Columns(x).Copy mit Offset?
von: Robert
Geschrieben am: 18.08.2014 12:22:32
Hallo Daniel,
dann werd ich es wohl so machen (allerdings mit Rows.Count.End, wenn du dich an meine Probleme mit Usedrange erinnerst).
Ich hatte ja die Hoffnung dass ich nur die Syntax nicht richtig zusammengebracht hab und es eine einfache ösung gibt.
viele grüße
Robert
![]() ![]() |
Betrifft: AW: .Columns(x).Copy mit Offset?
von: Daniel
Geschrieben am: 18.08.2014 13:27:57
wenn du Rows.count auf das SpecialCells(xlcelltypelastcell) anwendest, dann bekommst du 1 als Ergebnis, weil die letzte Zelle nur eine Zelle ist.
ein Offset auf die ganze Spalte würde natürlich auch funktionieren, allerdings darfst du natürlich keine Zellen ausserhalb des Tabellenblatts ansprechen (die gibst nämlich nicht).
deshalb musst du, wenn du von einer ganzen Spalte ausgehst, diese zuerst verkleinern, bevor du das Offset anwendest:
Tabelle1.Columns(24).Resize(Tabelle1.Rows.count - 7).Offset(6, 0).Copy
![]() ![]() |
Betrifft: AW: .Columns(x).Copy mit Offset?
von: Robert
Geschrieben am: 18.08.2014 13:53:24
Hallo Daniel.
Ich meinte natürlich Cells(Rows.Count,24).End(xlup) statt dem Specialcells, um die letzte Reihe zuverlässig zu ermitteln.
Ging aber doch einfacher:
Tabelle1.UsedRange.Columns(24).Offset(6).CopyStudieren über Probieren :)
![]() ![]() |
Betrifft: AW: .Columns(x).Copy mit Offset?
von: Daniel
Geschrieben am: 18.08.2014 14:18:53
Hi
nur dann, wenn die Zeile 1 zur UsedRange gehört.
Ist die Zeile 1 eine Leerzeile, welche nicht zur UsedRange gehört, dann kopierst du nicht ab Zeile 7, sondern ab Zeile 8.
Gruß Daniel
![]() ![]() |
Betrifft: AW: .Columns(x).Copy mit Offset?
von: Robert
Geschrieben am: 18.08.2014 15:18:49
Danke für den Hinweis,
ist bei mir der Fall, deswegen passts.
Danke :)
![]() |