我需要一个Excel VBA代码来复制粘贴一系列单元格
为了满足我的要求,我需要一个代码来满足以下条件我需要一个Excel VBA代码来复制粘贴一系列单元格,excel,vba,macros,Excel,Vba,Macros,为了满足我的要求,我需要一个代码来满足以下条件 从范围A2:G5中选择 然后检查是否有一张以当前日期命名的表格,即:e 29-02-2016 如果是, 然后复制粘贴A1中的范围,在下面留下3行,以便下一个数据粘贴到该范围下。 如果没有,, 创建一个新的工作表,用当前日期命名,然后复制粘贴A1中的范围,在下面留下3行,以便下一个数据粘贴到该范围下 我尝试了下面的代码,但一旦创建了当前日期表,它就会给我错误 Sub Macro1() Sheets("Sheet1").Select
Sub Macro1()
Sheets("Sheet1").Select
Range("D3:G12").Select
Selection.Copy
sheets = "todaysdate".select
Dim todaysdate As String
todaysdate = Format(Date, "dd-mm-yyyy")
AddNew:
Sheets.Add , Worksheets(Worksheets.Count)
ActiveSheet.Name = todaysdate
On Error GoTo AddNew
Sheets(todaysdate).Select
Range("A1048576").Select
Selection.End(xlUp).Select
ActiveCell.Offset(3, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
试试这些修改
Sub Macro1()
Dim todaysdate As String
With Worksheets("Sheet1")
.Range("D3:G12").Copy
End With
todaysdate = Format(Date, "dd-mm-yyyy")
On Error GoTo AddNew
With Worksheets(todaysdate)
On Error GoTo 0
With .Cells(Rows.Count, "A").End(xlUp).Offset(3, 0)
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
End With
Exit Sub
AddNew:
With Worksheets.Add(after:=Sheets(Sheets.Count))
.Name = todaysdate
With .Cells(Rows.Count, "A").End(xlUp)
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
End With
End Sub
使用[F8]键逐步完成修改后的过程,观察它如何处理抛出的错误,并继续退出或处理具有三行偏移量的粘贴