我有一个名为“DATABASE”的工作簿,其中包含5个工作表,我正在尝试让我的代码复制所有4个工作表的内容并将其粘贴到一个主工作表“ARCHIVE”中,以便全部编译在一起。
每次运行代码时,我希望清除ARCHIVE中的内容,然后将其他工作表中复制的值粘贴到其中。这样每次运行时就不会重复。
在清除之前,代码可以正常工作,但是当我在sheets("ARCHIVE").activate
之后添加activesheets.cells.clearcontents
或sheets("ARCHIVE").cells.clearcontents
时,它就无法正常工作了。
请问有人能帮我确定应该在何处放置ARCHIVE工作表的清除内容代码,并且是否需要在此之前声明某些内容?
以下是代码示例,没有清除内容时可以正常工作:
Sub CopyToMaster()
ShtCount = ActiveWorkbook.Sheets.Count
For I = 2 To ShtCount
Worksheets(I).Activate
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
Range("a2:N" & LastRow).Select
Selection.Copy
Sheets("ARCHIVE").Activate
LastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Select
'Required after first paste to shift active cell down one
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(0, 0).Select
Selection.PasteSpecial
ActiveWorkbook.Save
Next I
End Sub
Sub tensecondstimer()
Application.OnTime Now + TimeValue("00:00:10"), "CopyToMaster"
End Sub
.Select
和.Activate
。你可能想看一下如何在Excel VBA中避免使用Select。