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 回答