2015-04-03 157 views
0

我有一個每天完成的審計。我被要求將審覈要點保存在一張單獨的表格中供管理部門審覈。球隊。代碼在下面,但是當我運行它時,出現錯誤:Script out of range將數據從1張複製到另一個可用行中的另一張

Sub copy1() 
Dim sheet2 As Worksheet 
Dim sheet10 As Worksheet 

Set sheet2 = Worksheets("sheet2") 
Set sheet10 = Worksheets("sheet10") 

sheet2.Range("a2:g10").Copy 
sheet10.Cells(Rows.count, 1).End(xlUp).Offset(1, 0).pastspecial xlPasteValues 

Application.CutCopyMode = False 
Application.ScreenUpdating = True 


End Sub 
+0

謝謝你們。這對初學VBA程序員來說是一項很棒的服務。我使用了上面的代碼,並重寫了幾次,因爲「腳本超出範圍」錯誤。解決方案非常簡單,將「sheet2」更改爲「DataEntry」。一切正常。再次感謝您的幫助。 – floatpilot99 2015-04-07 14:01:36

回答

0

這很難肯定地說,但它可能是您收到「下標超出範圍」錯誤,因爲你的工作簿中並沒有名爲「Sheet2的」和「Sheet10」工作表。

以下代碼從Sheet2複製數據並將數據的值粘貼到Sheet10上的下一個可用行。

Sub Copy2() 

Dim DestinationStartingCell As Range 
Dim SheetRowCount As Long 

Worksheets("Sheet2").Range("A2:I29").Copy 

SheetRowCount = Worksheets("Sheet10").Rows.Count '1048576 for Excel 2007 and later 
Set DestinationStartingCell = Worksheets("Sheet10") _ 
.Range("A" & SheetRowCount).End(xlUp).Offset(1, 0) 
DestinationStartingCell.PasteSpecial xlPasteValues 

End Sub 
+0

我怎樣才能使它動態的,每天的範圍將被複制到工作表10的下一行。 – floatpilot99 2015-04-03 14:50:41

+0

請參閱:http://stackoverflow.com/questions/12497804/finding-first-blank-row-then-writing如果你更新你的問題正文以更清楚你需要什麼,我也會更新我的答案來匹配它。我看到您的問題標題暗示您希望將結果複製到下一行。 – davidmneedham 2015-04-03 14:55:46

0

您可以使用此代碼

emptyrow=WorksheetFunction.CountA(Workbooks(<workbookname>).Sheets(10).Range("A:A"))+1 

Workbooks(<workbookname>).Sheets(10).Cells(emptyrow,1).pastespecial xlPasteValues 

動態發現Sheet10第一個空行並粘貼至。

相關問題