更正(在我看来)
If wsCombined.Range("A3") > 0 Then
应该成为
IF wsCombined.Range("A3").Value <> "" Then
不要为End函数使用自定义函数。它是多余的,限制了你可以用它做什么。
wsCombined.Rows("3:" & LastRow(wsCombined)).ClearContents
wsCombined.Range("A3",WSCombined.Range("A1048576").End(xlup).Address).EntireRow.Delete
另一个
wsProjects.Range("A3:" & "R" & LastRow(wsProjects)).Copy
wsProjects.Range("A3",wSProject.Range("R3").End(xlDown).Address).Copy
等等。我将很快回到这个答案,但我想如果你删除自定义函数并使用内置功能,错误就会消失。
尝试添加一个 xlPasteValues 在你的每一个之后 .PasteSpecial 代码行
xlPasteValues
.PasteSpecial
wsCombined.Range("A3").PasteSpecial xlPasteValues
和
wsCombined.Range("A" & wsCombined.Range("A" & .Rows.Count).End(xlUp).Row + 1).PasteSpecial xlPasteValues