复制范围到新工作表失败

时间:2015-11-19 13:27:09

标签: excel vba excel-vba

VBA新手在将纸张复制到另一张纸张时遇到问题。

复制整个工作表但我无法通过偏移复制以同样的方式运行。

我错过了什么?

source.Copy ThisWorkbook.Sheets(Sheets.Count) 'works
source.Range("A12").Copy Destination:=ThisWorkbook.Sheets(Sheets.Count) 'fails

1 个答案:

答案 0 :(得分:1)

您试图在工作表对象上粘贴范围,但是您需要指定要在该工作表中粘贴的初始范围(左上角单元格)! ;)

source.Range("A12").Copy Destination:=ThisWorkbook.Sheets(Sheets.Count).Range("A1")

你也可以使用“范围转移”,它比复制效率更高:

ThisWorkbook.Sheets(Sheets.Count).Range("A1").Value = source.Range("A12").Value

以下是如何创建新工作表并粘贴旧工作表:

Sub test_frostbite()
Dim wB As Workbook, _
    WsNEW As Worksheet, _
    Source As Worksheet

Set wB = ActiveWorkbook
Set Source = wB.Sheets("SheetName")
Set WsNEW = wB.Sheets.Add

Source.UsedRange.Copy Destination:=WsNEW.Range("A1")

End Sub