循环范围不允许范围(单元格,单元格)范围(“A:A”)

时间:2017-08-15 14:43:25

标签: vba excel-vba excel

背景

我有一个7 x 30个单元格的数组来循环。对于30列(Dim j)中的每一列,我循环遍历行(Dim i)1以查看是否存在值,如果存在,则开始复制第2行到第7行的范围。

试图使用(例如):

Sheets("NAME").Range(Cells(i+1,1),Cells(i+7,1)).Copy

我得到了一个1004,应用程序定义或对象定义的错误,我已经能够减轻使用:

Sheets("NAME").Range("A" & i+1 & ":A" & i+7 & ").Copy

我的代码出现错误:

Sheets("RM").Range(Cells(i + 6, 2), Cells(i + 13, 2)).Copy

问题:

这适用于具有已知列的项目,但我不确定如何继续处理变量列。我知道这不起作用:

Sheets("NAME").Range(Cells(i+1,j),Cells(i+7,j)).Copy

我需要找到一种方法来适应这个Range模型而不使用Cell来处理j,一个变量列。

问题:

有没有办法使用Range而不使用Cell?

我唯一的猜测是以下,我认为使用不正确的语法:

Sheets("NAME").Range(Columns(j) & i+1 & ":" & Columns(j) & i+1).Copy 

任何帮助将不胜感激!

编辑:将错误1004名称添加到此问题部分。

1 个答案:

答案 0 :(得分:0)

尝试使用表格Cells(

为您的Range(Sheets("Sheet1").Cells(1, 1), Sheets("Sheet1").Cells(2, 2))电话预告

当您在对CellsRange的通话中省略该表格时,它将默认为对当前所选工作表的引用,因此,如果您正在调用Sheets(Unselected Sheet).Range(Cells(1, 1))它在你指的是哪张纸之间感到困惑。