Ihre Logik scheint ein wenig fehlerhaft, weil Sie sagen, dass Sie nur Zellen kopieren wollen, die nicht leer sind. Normalerweise würde man Zeilen kopieren, die nicht leer sind, aber leere Zellen innerhalb der ausgewählten Zeilen enthalten. Daher schlage ich diesen Ansatz vor: Zuerst kopieren Sie alles und entfernen dann die Zeilen, die Sie nicht behalten möchten. Der folgende Code würde alles kopieren.
Private Sub CopyPasteRange()
Dim Rng As Range
Dim Arr As Variant
With Range("Candidatures")
Set Rng = .Range(.Cells(0, 1), .Cells(.Rows.Count - 1, 6))
End With
Debug.Print Rng.Address, Rng.Rows.Count, Rng.Columns.Count
Arr = Rng.Value
Debug.Print Lbound(Arr,1), Lbound(Arr, 2), Ubound(Arr,1), Ubound(Arr,2)
Debug.Print Worksheets("RawData").Cells(2, 1).Resize(UBound(Arr, 1), UBound(Arr, 2)).Address
Worksheets("RawData").Cells(2, 1).Resize(UBound(Arr, 1), UBound(Arr, 2)).Value = Arr
End Sub
Beachten Sie, dass die Zielzelle (2,1) A2 ist, was bedeutet, Zeile 2, Spalte 1. Dies ist die obere linke Zelle des gesamten Bereichs kopiert werden und Sie können es für Ihre Anforderungen ändern.
Wenn Sie die neuen Zeilen in "RawData" durchlaufen, denken Sie daran, dies von unten nach oben zu tun, damit Sie die Zeile löschen können, die nicht Ihren Anforderungen entspricht.
Hinweis: Ich bin eher überrascht über den Code .Range(.Cells(0, 1), .Cells(.Rows.Count - 1, 6))
. Cells(0, 1)
, die normalerweise einen Fehler auslösen würde. Dies ist in diesem Fall nicht der Fall, da es sich auf einen benannten Bereich bezieht. Ich habe getestet und es funktioniert richtig. Sie sagen jedoch, Sie haben einen Tisch. Ich bin nicht mit Tabellen vertraut, weil ich Excel gelernt habe, bevor sie eingeführt wurden. Wie auch immer, wenn diese Codezeile ein Problem verursacht, dann liegt das daran, dass es in Excel keine Zeile 0 gibt. Die "normale" Art, diese Codezeile zu konstruieren, wäre .Range(.Cells(1, 1), .Cells(.Rows.Count, 6))
, aber als ich versuchte, gab es mir den falschen Bereich. Mit der Null werden die korrekten Daten aus einem benannten Bereich aufgenommen.
wo schlägt das fehl? Welcher Fehler wird angezeigt? – Luuklag
Fehler in dieser Codezeile Mit Worksheets (CopierColler) .Array (arrCandidatures) .Columns (iCol) Ich kann nicht die Tabelle auswählen, in der die Spalten 1 bis 6 ausgewählt werden sollen – Jonathan
Ist es eine Excel-Tabelle oder einfach? eine Gruppe von Zellen? – Luuklag