【发布时间】:2013-02-04 23:26:12
【问题描述】:
我正在编写一些 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
欢迎提出任何建议。
【问题讨论】:
-
您可能会从这两个提示中受益:使用
Option Explicit— see TLiebe's answer 和avoid usingSelect— 包括避免使用Activate -
另外,您可能想告诉我们错误是什么,以及它在哪一行。
-
错误出现在这一行: Range(m).Copy Sheets("ETIE").Range(address.Offset(1, 10))
标签: loops excel range named vba