VBA:代码评论 - 字段删除问题



实际上该代码实际上帮助我删除了我的工作表中的任何不需要的空白字段,直到昨天,它都可以正常工作纸上的行,给了我剩下的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

相关内容

  • 没有找到相关文章