2017-08-15 176 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是如何查看引用等是有點尷尬的。祝你好運! –