[英]Copy 2 sheets vba excel
我需要復制2張紙並保存在其他文件中。
我需要復制所有工作表“ Front”,並從工作表“ Cache”的底部添加Range(“ A2:N10”)
Worksheets("Front").Copy With ActiveSheet.UsedRange .Value = .Value End With Set wbNew = ActiveWorkbook wbNew.SaveAs "C:\\______\\pl.xlsx" wbNew.Close True
結果:新文件“ pl.xlsx”,其中A1:N25 =正面
A26:N43 =工作表緩存:D
有任何建議嗎?
Sub z()
Dim NewSheet, Cache1, Front1 As Worksheet
Dim LastRow As Integer
Set Front1 = ActiveWorkbook.Worksheets("Front")
Set Cache1 = ActiveWorkbook.Worksheets("Cache")
Front1.Copy
Set NewSheet = ActiveWorkbook.ActiveSheet
LastRow = Front1.UsedRange.Rows(Front1.UsedRange.Rows.Count).Row + 1
Cache1.Range("A2:N10").Copy
NewSheet.Cells(LastRow, 1).PasteSpecial
Application.CutCopyMode = False
End Sub
聲明工作表后,就很容易將數據四處移動。 我測試了這部分; 然后運行您的保存代碼
假設工作表“ Front”和“ Cache”在宏所在的工作簿中,則可以鍵入:
Sub main()
Worksheets("Front").Copy '<--| this creates a new workbook with one worksheet that becomes the "active" one
ThisWorkbook.Worksheets("Cache").Range("A2:N10").Copy '<--| 'ThisWorkbook' refers to the workbook the running macro resides in, no matter which is the "active" workbook
Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial '<--| no need to qualify range references up to its worksheet to implicitly assume the "active" one
Application.CutCopyMode = False
End Sub
如果工作表“ Front”和“ Cache”不在宏所在的工作簿中,則可以鍵入:
Sub main2()
Dim rngToCopy As Range
Set rngToCopy = Worksheets("Cache").Range("A2:N10") '<--| set the range to copy before changing the "active" workbook with the worksheet 'Copy' method call
Worksheets("Front").Copy '<--| this creates a new workbook with one worksheet that becomes the "active" one
rngToCopy.Copy '<--| copy the range you previously stored
Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial '<--| no need to qualify range references up to its worksheet to implicitly assume the "active" one
Application.CutCopyMode = False
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.