2012-06-04 51 views
3

失敗。錯誤在Excel 2010中,Range類的PasteSpecial方法下面是我的代碼的投擲這種錯誤中宏

Range(Cells(7, 1), Cells((Rowrange + 7), 2)).Select 
Selection.PasteSpecial Paste:=xlValues 


    ' my complete code 

strSheetName = "sheet1" 
Sheets(strSheetName).Select 
B6 = Range("B6").Value 
B7 = Range("B7").Value 
Range(Cells(11, 1), Cells((Rowrange + 11), 2)).Select 
Selection.Copy 

strSheetName = "sheet2" 
Sheets(strSheetName).Select 
' Range(Cells(7, 1), Cells((Rowrange + 7), 2)).Select 
'.Range(Cells(7,1), .Cells(RowRange + 7, 2). PasteSpecial Paste := xlValues 
'Selection.PasteSpecial Paste:=xlValues 
With ActiveSheet 
.Range(.Cells(7, 1), .Cells(Rowrange + 7, 2)).PasteSpecial Paste:=xlValues 
End With 

有沒有辦法避免這個錯誤?

+0

什麼是'RowRange'的價值? –

+0

你可以顯示完整的代碼(包括複製代碼) –

+1

你在哪裏複製粘貼?你需要首先複製粘貼;) –

回答

2

我認爲(如果上面的其實是你的完整代碼)你是不是複製數據,並直接試圖做的糊狀,因此您收到的錯誤:)

這是你想什麼呢?

strSheetName = "Estimated vs Actual Costs" 
With Sheets(strSheetName) 
    .Range(.Cells(7, 1), .Cells(RowRange + 7, 2)).Copy 
    .Range(.Cells(7, 1), .Cells(RowRange + 7, 2)).PasteSpecial Paste:=xlValues 
End With 

隨訪

試試這個

strSheetName = "sheet1" 
With Sheets(strSheetName) 
    B6 = .Range("B6").Value 
    B7 = .Range("B7").Value 
    .Range(.Cells(11, 1), .Cells((RowRange + 11), 2)).Copy 
End With 

strSheetName = "sheet2" 
With Sheets(strSheetName) 
    .Range(.Cells(7, 1), .Cells(RowRange + 7, 2)).PasteSpecial Paste:=xlValues 
End With 
+1

:對不起Sid我現在已經粘貼了完整的代碼。 – user1382191

+0

好的。現在試試:) –

+0

[assylias 1 - 1 Sid]哈哈。感謝編輯。 –

1

,以避免錯誤的類型,最好的辦法是隻使用完全合格的範圍:如果你知道表已被選中With ActiveSheet

With Sheets("The name of the sheet") 
    .Range(.Cells(7, 1), .Cells(RowRange + 7, 2)).PasteSpecial Paste:=xlValues 
End With 

或者。

另請注意,選擇是沒有必要的。

+0

:試過上面的代碼,沒有工作。 – user1382191

+0

我使用Excel 2010,但我正在使用的報告是在Excel 2003中創建的。 – user1382191

+0

+ 1上面的代碼應該可以工作。 –

相關問題