0

次のことを行うのに役立つVBAコードを作成しています。

すべての名前付き範囲のリストを貼り付けます リストをループし、リストに基づいて範囲をコピー/選択します そのアドレスからの特定のオフセットを持つアドレス参照を指定して、各選択を別のシートに貼り付けます

私はVBAにかなり慣れていないので、トリックを行うと思われるコードをいくつかまとめましたが、実行時エラーが発生しています。トラブルシューティングや提案を手伝ってくれる人はいますか?

私のコードはここにあります:

Sub RangeLoop()

Sheets("RANGEMATCH").Select
Range("A1").ListNames

Dim columnrange As Range
Dim m As Long
Dim address As Range

Set columnrange = Sheets("RANGEMATCH").Range("A:A").SpecialCells(xlConstants)

With columnrange
    For m = 1 To columnrange.Areas.Count
        Set address = Sheets("RANGEMATCH").Range(.Areas(m).Cells(1, 7).Value)
        Range(m).Copy Sheets("ETIE").Range(address.Offset(1, 10))
    Next
End With

End Sub

これは、私が取り組んでいるワークブックの例です。

https://docs.google.com/spreadsheet/ccc?key=0AodOP_8DnJnFdHJoQ0xBM3JUUGJxT3EyRXN0T2ltUmc&usp=sharing

任意の提案をいただければ幸いです。

4

1 に答える 1

0

Range() 関数は文字列変数を想定しています。範囲の名前または「A1」のようなセル参照

Range(m).Copy Sheets("ETIE").Range(address.Offset(1, 10))

m は数値であるため、機能しません。コピーしたいものを参照する必要があります。addressそれは、前の行で設定したオブジェクトにすぎないと思います。

address.Copy Sheets("ETIE").Range(address.Offset(1, 10))
于 2013-02-05T15:37:49.607 に答える