1

ListObject から最初の 10 行を選択し、それらを別の ListObject に貼り付ける VBA コードを作成したいと考えています。行のコレクションが新しいシートにコピーされると、それらが処理され、次に次の 10 行が選択されて処理されます。

標準の VBA 関数を使用してこれを実現できますが、ListObject を使用してこれを実現したいと考えています。

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

ListObjects を使用したいので、この問題に関するヘルプをいただければ幸いです。

前もって感謝します

4

2 に答える 2

0

「DataBodyRange」は範囲を返すことに注意してください。だからこれをしてください:

'copies entire line 1 from "loInput" to "loOutput" on line 2
loOutput.DataBodyRange.Rows(2) = loInput.DataBodyRange.Rows(1)

さらに、残りを処理するためのFORを作成するだけです

于 2019-01-18T19:06:48.693 に答える