excel - 如果它有 <30 行,则要删除整个列

标签 excel vba

我有多列和多行(> 200 行)。如果任何一列的数据 <30 行,我想删除整列。请帮忙

Sub Delete_EntireColumn()
Dim iCntr
    For iCntr = 1 To 10 Step 1
        Columns(1).EntireColumn.Delete
    Next
End Sub

最佳答案

尝试

Sub Delete_EntireColumn()
Dim LCol as Long, LRow as Long, i as Long

With Workbooks(REF).Sheets(REF)

    LCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    For i = LCol To 1 Step - 1
        LRow = .Cells(.Rows.Count, i).End(xlUp).Row
        If LRow < 30 Then
            .Columns(i).EntireColumn.Delete
        End If
    Next i

End With

End Sub

编辑

如果行没有连续填充:
Sub Delete_EntireColumn()
Dim LCol as Long, LRow as Long, i as Long

With Workbooks(REF).Sheets(REF)

    LCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
    For i = LCol To 1 Step - 1
        LRow = Application.WorksheetFunction.CountA(.Columns(i))
        If LRow < 30 Then
            .Columns(i).EntireColumn.Delete
        End If
    Next i

End With

End Sub

关于excel - 如果它有 <30 行,则要删除整个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55377591/

相关文章:

vba - 删除VBA中的所有链接表

excel - 每次循环递减

excel - 如何阻止 Excel 在不同区域设置中重命名工作表函数

vba - 有更多关于 WordBasic 的 FilePrintSetup 的文档吗?

ms-access - 将逗号分隔的字段解析为单独的字段 (MS ACCESS VBA 2003)

arrays - vlookup 和绝对引用以及 lastrow VBA 的问题

vba - 随机列表 VBA

Excel VBA 在 Firefox/Chrome 的新选项卡中打开网站

arrays - 将整数单元格范围转换为 Excel 单元格范围

excel - 如何激活Excel中的特定工作表?