1

さまざまなシートからすべての行と列をコピーして、1つのワークシートに上下に貼り付けたいと思います。

しかし、エラーが発生しています。サイトから提供されている様々な例を使ってみました。しかし、誰も私のために働いていません。解決にご協力ください。ワークシートを配列で渡します。シートを順番に取得します。

エラーが発生するコードを提供しました。貼り付けセクションでエラーが発生します。A1かR1C1のどちらかだと言っています。ただし、すべてのシートを1枚のシートに上下に貼り付ける必要があります。

For m = 1 To fnum


lastrow = tempws.Range("A" & ws.Rows.Count).End(xlUp).Row

ws(m).Cells.Copy tempws.Cells((lastrow + 1), 1)

Next m

tempws.Save
4

1 に答える 1

0

これは、ワークシートのセルの全範囲を、メインシートのシート全体よりも小さいセクションにコピーしようとしているためです。十分なセルが残っていないため、機能しません。データを含むセルのみをキャプチャするには、コピーシートのサイズを小さくする必要があります。

このようなものは、始めるための良いフレームワークになるはずです。データに合わせて調整する必要があるかもしれません。また、これは、コピーシートのすべてのデータがセルA1から始まることを前提としています。繰り返しますが、必要に応じて調整します。

For me = 1 to fnum

    lastrow = tempws.Range("A" & tempws.Rows.Count).End(xlUp).Row 'i changed this to tempws, as you just had ws

    With ws(m)

        lastcopyrow = .Range("A" & .Rows.Count).End(xlup).Row
        lastcopycol = .Range("A" & .Columns.Count).End(xlToLeft).Column    

        .Range("A1",.cells(lastcopyrow, lastcopycol)).Copy tempws.Cells((lastrow + 1), 1)

    End With

Next m

また、A1またはR1C1表記が原因で参照エラーが発生した場合は、直接コピー/貼り付けするのではなく、値として貼り付けることをお勧めします。

于 2013-01-15T17:08:20.360 に答える