我有以下代码,有效删除指定工作表中的三行(查找范围等) . 这段代码我用了至少一年没有任何问题 . 但是,我最近将此代码转移到新工作簿并设置了与以前的工作簿完全相同的工作表 .
下面突出显示的代码错误以及错误消息
运行时错误'1004'
删除范围类的方法失败
任何人都可以建议为什么会出现此错误?
Sub DeleteRowPIC()
Application.ScreenUpdating = False
Application.Calculation = xlManual
ActiveSheet.Unprotect Password:="Projects123"
ActiveSheet.Range("Total").Select
If Selection.Row = 12 Then
Else
ActiveSheet.Range("Total").Select
Selection.Offset(-2, 0).Select
ActiveCell.EntireRow.Delete
ActiveSheet.Range("Total_1").Select
Selection.Offset(-2, 0).Select
ActiveCell.EntireRow.Delete **ERROR OCCURS HERE**
ActiveSheet.Range("Total_2").Select
Selection.Offset(-2, 0).Select
ActiveCell.EntireRow.Delete
End If
Range("K2").Select
Application.Calculation = xlAutomatic
With ActiveSheet
.Protect Password:="Projects123", UserInterfaceOnly:=True
.EnableOutlining = True
End With
1 回答
正如评论中所提到的,您应始终从最后一行开始,并在删除行时前往第一行 . 我怀疑你的问题是由此引起的 . 如果没有看到你的数据,我建议你从
Total_2
回到Total
. 此外,您应该尽可能避免使用Select
. 尝试将代码修改为:确保在某些时候将
Application.ScreenUpdating
设置回true .