2016-10-07 4 views
0

Ich versuche, eine große Menge an genetischen Daten zu machen, ein wenig mehr lesbar in Excel mit VBA. Ich versuche, alle 7 Zellen, die Daten enthalten, nach der 15. Spalte auszuschneiden und einzufügen und sie in den Spalten 8-15 abzusetzen. Das Beispiel von dem, was ich brauche, ist auf dem Bild enthalten. DATA EXAMPLE (RAW vs Wie ich es aussehen muss) Wie Sie am Code sehen können, sind die realen Daten ein wenig größer. (Bei 680 Zeilen und über 100 Spalten.)VBA Cut-Paste-Bereich von Daten

Wenn ich versuche, den Code auszuführen, schlägt er fehl, wenn der Datenbereich in die neue Zeile eingefügt wird. (Fehler 1004)

Der Code I ist:

Sub ShiftRows() 

    Dim codingCol, startCol As Integer 

    Dim LastRow As Integer 
    Dim CurrentRow As Integer 
    Dim LastCol, BeginCol As Integer 
    Dim CurrentInsertRow As Integer 


    LastRow = 2 

    For CurrentRow = 680 To LastRow Step -1 
     LastCol = 15 
     Do While Cells(CurrentRow, LastCol) <> "" 
     LastCol = LastCol + 1 
     Loop 

    CurrentInsertRow = CurrentRow 

    For BeginCol = 0 To ((LastCol - 15)/7) - 1 

     CurrentInsertRow = CurrentInsertRow + 1 
     Rows(CurrentRow).Offset(1).Insert shift:=xlShiftDown 
     Range(Cells(CurrentRow, 15 + (BeginCol * 7)).Address & ":" & Cells(CurrentRow, 15 + (BeginCol * 7) + 6).Address).Cut 
     Range("H:N" & CurrentInsertRow).Paste 

     Next BeginCol 
    Next CurrentRow 
End Sub 
+0

Haben Sie das jemals herausgefunden? Hat meine vorgeschlagene Antwort unten geholfen? – Shimeon

Antwort

0

Ihre Zelle referrence ist "H:N" & CurrentInsertRow oder H: N2 zum Beispiel, ist dies nicht vollständig. Versuchen Sie:

Range("H" & CurrentInsertRow & ":N" & CurrentInsertRow).Paste 
+0

Zunächst einmal, danke für Ihre Antwort! Das hat jedoch den Fehler zurückgegeben: Objekt unterstützt diese Eigenschaft oder Methode nicht ..: / –

0

Range.Cut können Sie den Pastenbereich nach ihm angeben. Versuchen Sie etwas wie:

Range("A1:A3").Cut Range("B10") 

Wo ersetzen Sie meine Bereichswerte für diejenigen, die Sie wollen.