以下是我的代码抛出此错误:
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 :(得分: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 :(得分:1)
避免此类错误的最佳方法是仅使用完全限定的范围:
With Sheets("The name of the sheet")
.Range(.Cells(7, 1), .Cells(RowRange + 7, 2)).PasteSpecial Paste:=xlValues
End With
或者:With ActiveSheet
如果您知道工作表已被选中。
另请注意,无需选择。