Bereich Markieren und Kopieren (Verständnis)
Guten Tag Zusammen,
ich hab ein Verständnisproblem was das Thema angeht einen Bereich zu markieren und dann zu kopieren.
Hier ist erstmals der Codeschnipsel
Also ich versuch es mal zu Erklären und dann komme ich auf mein Problem hin.
wb = ist die Variable des Worksheets Objektes.
Range = markiert den Bereich von A29 bis N29 und mit dem Objekt wb werden die Zellen gezählt in Spalte A
die von unten nach oben gezählt werden (End(xlUp).Row)
Copy= Kopiert diesen Bereich und fügt den Bereich in rngOut ein
Hab ich das alles Richtig verstanden?
Ich selber habe ein Code geschrieben der mit die Überschrift ermittelt. Die Überschrift ist Variable in der Zeilen länge.
Heißt Sie kann in A29 sein aber auch in A34. gemacht hab ich das so:
Hinweis: Der Code ist nur länger ist nur Ausschnitt.
Nun weiß ich jetzt das die Überschrift in sucheV1.Activate anfängt
Mit sucheV1.Offset(1,0) hab ich die erste Zeile meines Datenbereiches. Jetzt hab ich mir gedacht das ich sucheV1.Offset(1,0) anstelle der "A29" reinschreiben könnte. also das der Code dann so aussieht:
dies geht aber leider nicht :/
Hätte mir jemand eine Lösung und vielleicht eine gute Erklärung dazu das ich das mal verstehe?
Grüße
Gimli3311
ich hab ein Verständnisproblem was das Thema angeht einen Bereich zu markieren und dann zu kopieren.
Hier ist erstmals der Codeschnipsel
wb.Range("A29:N" & wb.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngOut
Also ich versuch es mal zu Erklären und dann komme ich auf mein Problem hin.
wb = ist die Variable des Worksheets Objektes.
Range = markiert den Bereich von A29 bis N29 und mit dem Objekt wb werden die Zellen gezählt in Spalte A
die von unten nach oben gezählt werden (End(xlUp).Row)
Copy= Kopiert diesen Bereich und fügt den Bereich in rngOut ein
Hab ich das alles Richtig verstanden?
Ich selber habe ein Code geschrieben der mit die Überschrift ermittelt. Die Überschrift ist Variable in der Zeilen länge.
Heißt Sie kann in A29 sein aber auch in A34. gemacht hab ich das so:
'Aktive Sheet (gefundene Datei) wir von Zelle A1 bis A60 durchsucht
For Each sucheV1 In ActiveSheet.Range("A10:A60").Cells
'Wenn Gesuchte Text = den Vorgegebenen ist gehts weiter
If sucheV1.Text = arrVersion1(1) Then
'Makiert die Gesuchte spalte
sucheV1.Activate
End If
Next
Hinweis: Der Code ist nur länger ist nur Ausschnitt.
Nun weiß ich jetzt das die Überschrift in sucheV1.Activate anfängt
Mit sucheV1.Offset(1,0) hab ich die erste Zeile meines Datenbereiches. Jetzt hab ich mir gedacht das ich sucheV1.Offset(1,0) anstelle der "A29" reinschreiben könnte. also das der Code dann so aussieht:
wb.Range("sucheV1.Offset(1,0):N" & wb.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngOut
dies geht aber leider nicht :/
Hätte mir jemand eine Lösung und vielleicht eine gute Erklärung dazu das ich das mal verstehe?
Grüße
Gimli3311
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 265455
Url: https://administrator.de/forum/bereich-markieren-und-kopieren-verstaendnis-265455.html
Ausgedruckt am: 11.01.2025 um 15:01 Uhr
4 Kommentare
Neuester Kommentar
Zitat von @Gimli3311:
wb = ist die Variable des Worksheets Objektes.
Range = markiert den Bereich von A29 bis N29 und mit dem Objekt wb werden die Zellen gezählt in Spalte A
die von unten nach oben gezählt werden (End(xlUp).Row)
Copy= Kopiert diesen Bereich und fügt den Bereich in rngOut ein
Hab ich das alles Richtig verstanden?
Nicht ganz, A29 ist die Startzelle des Bereichs. Hiermit wb.Cells(Rows.Count, 1).End(xlUp).Row wird zuerst die Unterste Zelle in Spalte A genommen und von dort aus die nächste nicht leere Zelle nach oben gesucht .End(xlUP) von dieser Zelle wird dann der Zeilenindex genommen .Row, so das wir im Endeffekt zum String "A29:N" die Zeilennummer hinzunehmen.wb = ist die Variable des Worksheets Objektes.
Range = markiert den Bereich von A29 bis N29 und mit dem Objekt wb werden die Zellen gezählt in Spalte A
die von unten nach oben gezählt werden (End(xlUp).Row)
Copy= Kopiert diesen Bereich und fügt den Bereich in rngOut ein
Hab ich das alles Richtig verstanden?
Nun weiß ich jetzt das die Überschrift in sucheV1.Activate anfängt
Mit sucheV1.Offset(1,0) hab ich die erste Zeile meines Datenbereiches. Jetzt hab ich mir gedacht das ich sucheV1.Offset(1,0)
anstelle der "A29" reinschreiben könnte. also das der Code dann so aussieht:
> wb.Range("sucheV1.Offset(1,0):N" & wb.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngOut
>
Hier gibt es mehrere Möglichkeiten, das hier ist z.B. eine davon
wb.Range("A" & sucheV1.Offset(1,0).Row & ":N" & wb.Cells(Rows.Count, 1).End(xlUp).Row).Copy rngOut
https://msdn.microsoft.com/de-de/library/office/ff838238.aspx
http://ms-excel.eu/faqs/excel-vba-texte/vba-zellen-und-bereiche.html
http://www.excel-easy.com/vba/range-object.html
Leider wird aus deinem Post nicht ganz klar was du genau kopieren willst .
Gruß jodel32
-edit- Korrektur
Zitat von @Gimli3311:
Dein Code kopiert ja nur die eine Zeile aber ich hab schon eine Idee wie ich es mache das es mir so viele Zeilen kopiert bis kein
Wert mehr kommt :D
Das hatte ich oben bereits korrigiert, weil es eben nicht ganz klar war ...Dein Code kopiert ja nur die eine Zeile aber ich hab schon eine Idee wie ich es mache das es mir so viele Zeilen kopiert bis kein
Wert mehr kommt :D