2016-05-12 93 views
1

我這段代碼運行時得到一個1004錯誤:VBA複製誤差範圍1004

Dim Row As Integer 
Dim Col As Integer 

Row = Worksheets("Design").Cells(11, 22).Value 
Col = Worksheets("Design").Cells(12, 22).Value 

Worksheets("Tablecorrected").Range(Cells(2 + 19 * Row, 1 + 19 * Col), Cells(19 + 19 * Row, 18 + Col * 19)).Copy _ 
Destination:=Worksheets("Scriptsheet").Range(Cells(1, 1), Cells(18, 18)) 

它指向複製行,我不知道什麼是錯在這裏。感謝您的幫助

+3

的'細胞()'的'範圍內()'是指的活動表不是表到了'範圍()'是指。您需要將'Cells()'quaify到適當的表單。工作表(「Tablecorrected」)。範圍(工作表(「表校正」)。單元格(2 + 19 ...'等等。 –

+0

像這樣:'代碼'工作表(「Tablecorrected」)。 「).Range(Cells(2 + 19 * Row,1 + 19 * Col),Cells(19 + 19 * Row,18 + Col * 19)))複製_ Destination:= Worksheets(」Scriptsheet「)。範圍(工作表(「腳本表」)。範圍(單元格(1,1),單元格(18,18)))'代碼' – IschaIschratioh

+1

http://stackoverflow.com/questions/27763089/count-the-number-of-行功能於另一片/ 27763394#27763394 – Jeeped

回答

3

Range()中的Cells()指的是活動工作表,而不是Range()所指的工作表。

您需要將Cells()限定在適當的紙張上。

Worksheets("Tablecorrected").Range(Worksheets("Tablecorrected").Cells(2 + 19 ... and so on. 

或保存輸入你可以使用一個帶座外

Dim Row As Integer 
Dim Col As Integer 

Row = Worksheets("Design").Cells(11, 22).Value 
Col = Worksheets("Design").Cells(12, 22).Value 

With Worksheets("Tablecorrected") 

    .Range(.Cells(2 + 19 * Row, 1 + 19 * Col), .Cells(19 + 19 * Row, 18 + Col * 19)).Copy _ 
    Destination:=Worksheets("Scriptsheet").Range(Worksheets("Scriptsheet").Cells(1, 1), Worksheets("Scriptsheet").Cells(18, 18)) 

End With