VBA新手在将纸张复制到另一张纸张时遇到问题。
复制整个工作表但我无法通过偏移复制以同样的方式运行。
我错过了什么?
source.Copy ThisWorkbook.Sheets(Sheets.Count) 'works
source.Range("A12").Copy Destination:=ThisWorkbook.Sheets(Sheets.Count) 'fails
答案 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