vba - 如何使用 VBA 删除除特定标题之外的所有空列?

标签 vba excel

我想删除工作表中符合以下条件的所有列:

  • 第 1 行 = "foobar"
  • 第 2-1000 行为空

  • 这听起来很简单,但我还没有设法让它充分发挥作用。任何帮助将不胜感激。

    谢谢!

    最佳答案

    根据您的要求删除行的最快方法。
    我假设 Row1 有列标题

    Option Explicit
    
    Sub Sample()
        Dim aCell As Range, rng As Range
        Dim LastCol As Long, LastRow As Long, i As Long
        
        With Sheets("Sheet1")
            Set aCell = .Rows(2).Find(What:="foobar", LookIn:=xlValues, _
            Lookat:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False)
            
            If Not aCell Is Nothing Then .Rows(2).Delete
            
            LastRow = .Cells.Find(What:="*", _
                      After:=.Range("A1"), _
                      Lookat:=xlPart, _
                      LookIn:=xlFormulas, _
                      SearchOrder:=xlByRows, _
                      SearchDirection:=xlPrevious, _
                      MatchCase:=False).Row
            
            LastCol = .Cells.Find(What:="*", _
                      After:=.Range("A1"), _
                      Lookat:=xlPart, _
                      LookIn:=xlFormulas, _
                      SearchOrder:=xlByColumns, _
                      SearchDirection:=xlPrevious, _
                      MatchCase:=False).Column
            
            Set rng = Range("A1:" & Split(Cells(, LastCol).Address, "$")(1) _
                      & LastRow)
            
            ActiveSheet.AutoFilterMode = False
        
            For i = 1 To LastCol
                rng.AutoFilter Field:=i, Criteria1:=""
            Next i
            
            rng.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
            
            ActiveSheet.AutoFilterMode = False
        End With
    End Sub
    

    关于vba - 如何使用 VBA 删除除特定标题之外的所有空列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705724/

    相关文章:

    VBA通过部分名称识别工作簿

    vba - vba中的运算符

    excel - 在 Excel VBA 中复制图形时清除剪贴板

    vba - 运行时错误 287。在 Access 中使用 VBA 通过 Outlook 发送电子邮件

    excel - 如果在单元格上找到特定值,则删除范围内的所有单元格 - VBA

    excel - 打包和分发 Excel 应用程序的最佳方式是什么

    mysql - 比较 SQL 表行,如果完全匹配则返回不同的答案,1 个差异,2 个差异等

    oracle - PL/SQL 将查询结果分配给 CLOB

    excel - VBA Excel ActiveChart ProtectFormatting

    ms-access - 表字段默认属性值函数在 Microsoft Access 2010 中不再工作