2017-08-15 129 views
0

背景:与范围不允许范围(细胞,细胞)只范围循环(“A:A”)

我有至7×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 

我需要找到一个方法来适应没有细胞的这种范围模式对于j,变量列工作。


问:

有没有一种方法,使不使用电池使用范围这项工作?

我唯一的猜测是下面的,我相信使用不正确的语法:

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

任何帮助,将不胜感激!

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

+0

你有什么错误? –

+0

@ScottCraner对不起,我错过了,我只列出了“一个错误”,并不是它是该行的1004错误。更新了帖子,并添加了我收到错误的确切行(不是邮件的重新散列)。 – Cyril

+0

然后,下面的答案显示,您需要像'Range()':'表格(“名称”)一样将相同的父项添加到'Cells()'范围(表格(“名称”)。 i + 1,1),表格(“NAME”)。Cells(i + 7,1))。复制' –

回答

0

尝试用纸张您作序通话Cells(Range(Sheets("Sheet1").Cells(1, 1), Sheets("Sheet1").Cells(2, 2))

如果省略该板在调用CellsRange然后它会默认为当前选定的表的引用,因此,如果你打电话Sheets(Unselected Sheet).Range(Cells(1, 1))它会在你指的是哪张表之间产生混淆。

+0

问题正是我在回答中所说的。您需要将名为表格的单元格称为“单元格”,例如“表格(”名称“)。范围(表格(”名称“)。单元格(i + 1,1),表格(”名称“) .Cells(i + 7,1))。复制' –

+0

Got'cha,我没有正确阅读,斯科特帮助重新引导了你所说的话。谢谢!标记为答案。 – Cyril

+0

对不起,如果我没有解释得很好,说明excel是如何查看引用等是有点尴尬的。祝你好运! –