Kopieren von Zeilen aus einer listobject zum anderen mit Excel-VBA
Ich will ein Stück von VBA-code die select-die ersten 10 Zeilen von einem ListObject und dann in ein anderes einfügen ListObject. Sobald eine collection von Zeilen, die kopiert wurde, um die neue Platte, so erfolgt die Verarbeitung, dann die nächsten 10 Zeilen werden ausgewählt und bearbeitet, und so weiter.
Kann ich erreichen, das mit standard-VBA-Funktionen, aber ich möchte erreichen, das mit dem ListObject, d.h.
Sub PopulateSectionOfData()
Dim loInput As ListObject
Dim loOutput As ListObject
Dim intNumOfColumns As Integer
Dim rngToCopy As Range
Dim intRowsInFile As Integer
' Create the inout and output ListObjects
Set loInput = Worksheets(WS_INPUT).ListObjects(LO_INPUT)
Set loOutput = Worksheets(WS_OUTPUT).ListObjects(LO_OUTPUT)
' Delete all the current rows from the output table
Worksheets(WS_OUTPUT).ListObjects(LO_OUTPUT).DataBodyRange.Delete
' Set variables
intNumOfColumns = loInput.ListColumns.Count
WorkbookCounter = 1
intRowsInFile = 10 ' Select 10 records at a time
' Get 10 records at a time from the input file
For i = 1 To loInput.DataBodyRange.Rows.Count Step intRowsInFile - 1
'???? - This is the area that i am unsure on
Set rngToCopy = loInput.DataBodyRange(p, 1)
rngToCopy.Copy loOutput
'????
' TODO - Add further processing here
Next i
' Clear used objects
Set loInput = Nothing
Set loOutput = Nothing
End Sub
Jede Hilfe in dieser Sache wäre sehr willkommen, da möchte ich nutzen, ListObjects
Danke im Voraus
InformationsquelleAutor AMPorter | 2013-11-20
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
DataBodyRange
bezieht sich auf die aktuelle Auswahl der Zeilen und Spalten in der Tabelle. Wenn es keine Zeilen in der Tabelle (das ist Ihre Bedingung nach der AusführungDataBodyRange.Delete
, müssen Sie eine Zeile in die Tabelle zuerst, dann, Sie können kopieren und einfügen von Daten in diese Zeile, mit Excel die Tabelle erweitert, entsprechendIhre
for
Schleife aktualisiert werden kann, um wie folgt zu Lesen:Denken Sie daran, dass "DataBodyRange" bringt eine Reihe. Also:
Zusätzlich, stellen Sie einfach ein, bis der Vorgang der rest