实际上该代码实际上帮助我删除了我的工作表中的任何不需要的空白字段,直到昨天,它都可以正常工作纸上的行,给了我剩下的300行。
我知道问题在此行
Range ("A2:K2000".Select)
除了更改k
的值外,是否有任何解决方案可以替换此方案代码
Sub Delete_blank()
With ActiveSheet
If .Autofiltermode = False Then Cells.Select
Selection.AutoFilter
ActiveSheet.Range ("$A$2:$C$") & lastrow.AutoFilter Field:=1, Criterial:="="
ActiveSheet.Range ("$A$2:$C$") & lastrow.AutoFilter Field:=2, Criterial:="="
ActiveSheet.Range ("$A$2:$C$") & lastrow.AutoFilter Field:=3, Criterial:="="
Range ("A2:K2000").Select
Selection.EntireRow.Delete
ActiveSheet.ShowAllData
.AutoFilterMode = False
End With
End Sub
'INPUT : Sheet, the worksheet we'll search to find the last row
'OUTPUT : Long, the last occupied row
'SPECIAL CASE: if Sheet is empty, return 1
Public Function LastOccupiedRowNum(Sheet As Worksheet) As Long
Dim lng As Long
If Application.WorksheetFunction.CountA(Sheet.Cells) <> 0 Then
With Sheet
lng = .Cells.Find(What:="*", _
After:=.Range("A1"), _
Lookat:=xlPart, _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False).Row
End With
Else
lng = 1
End If
LastOccupiedRowNum = lng
End Function
我使用记录宏函数来创建此代码,现在我了解了问题。
请帮助我获得解决方案
预先感谢。
如何替换您的代码行:
Range ("A2:K2000".Select)
与:
之类的东西 ActiveSheet.Range("A2", ActiveCell.SpecialCells(xlLastCell)).Select