我需要复制两张图纸,并保存在其他文件中。
我需要复印所有的表格"正面"底部添加纸张"缓存"的范围("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
有什么建议吗?
假设工作表"Front"one_answers"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"one_answers"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
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
一旦声明了Sheets,就很容易将数据四处推送。我测试了这个部分;然后运行保存代码