2016-09-09 4 views
0

In Excel auf einem einzelnen Blatt, habe ich eine leere Vorlage und eine Reihe von Rohdaten auf der Seite, die in die Vorlage eingefügt werden soll . Ich brauche Hilfe beim Erstellen des VBA-Codes zum Kopieren und Einfügen der Daten in die Vorlage, damit keine zusätzlichen Zellen eingefügt werden (am Ende der Daten anhalten). Meine Rohdaten ändern sich und sollten eine beliebige Länge von Zeilen haben können, aber sie ist immer konstant von Spalten Z: AL. Ich bin daran interessiert, es zu den Spalten A5: M5 zu bewegen.Excel VBA-Code zum Kopieren und Einfügen einer Reihe von Daten mit einer endlichen Menge (Anzahl)

Vielen Dank im Voraus!

Antwort

0

Dies ist der einfachste Code, den ich mir vorstellen kann. Vielleicht möchten Sie einen Arbeitsblattverweis vor den Bereich werfen und ich habe ein paar Methoden gefunden, um das Ende des Bereichs zu finden. Ich bevorzuge die 3. Methode.

dest = "A5" 
    wsName = "DataSheet" 

    With Worksheets(wsName) 
    endRow1 = .Range("Z1").End(xlDown).Row 
    endRow2 = .Range("Z105000").End(xlUp).Row 
    endRow3 = .Range("Z:AL").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 

    .Range("Z1:AL" & endRow3).Copy Destination:=Range(dest) 

    End With 
0

Wenn gibt es in einer Spalte im Datensatz keine Leerzeichen (Ich gehe davon aus Spalte Z), dann können Sie Range.End verwenden, um die letzte Reihe zu bekommen. Ich versuche, das Kopieren/Einfügen in Makros zu vermeiden, weil es einen schnelleren Weg dafür gibt.

Option Explicit 
Sub MoveDataRange() 
    Dim dest As Range, endRow As Integer 

    With Worksheets("DataSheet") 
     endRow = .Range("Z1").End(xlDown).Row 
     Set dest = .Range("A5").Resize(endRow, 13) '13 columns between Z:AL 
     dest.Value = .Range("Z1:AL" & endRow).Value 
    End With 
End Sub 
Verwandte Themen