宏 - 删除工作簿内多个工作表上的空白列(有标题)

问题描述 投票:0回答:1

请为相对新手提供帮助......我正在寻找一种方法来删除单个工作簿中多个工作表中的所有空白列(有标题)。

我有一个代码(我没有编写)可以删除活动工作表中的所有空白列,并且效果很好。但是,我想要一种方法让该代码同时在多个工作表中工作。我找不到任何东西:

子删除空白列() 暗淡我只要 Dim lnglastcolumn 只要长 调暗范围

With ActiveSheet
    lnglastcolumn = .Cells(1, Columns.Count).End(xlToLeft).Column
    
    For i = 1 To lnglastcolumn
        If .Cells(.Rows.Count, i).End(xlUp).row = 1 Then
            If delrng Is Nothing Then
                Set delrng = .Columns(i)
            Else
                Set delrng = Union(delrng, .Columns(i))
            End If
        End If
    Next i
End With

delrng.Delete

结束子

非常感谢任何帮助!

vba macros
1个回答
0
投票

使用表格对象:

Sub DeleteBlankColumns(curSheet As Object)
    Dim i As Long
    Dim lnglastcolumn As Long
    Dim delrng As Range
    
    With curSheet
        lnglastcolumn = .Cells(1, Columns.Count).End(xlToLeft).Column
        
        For i = 1 To lnglastcolumn
            If .Cells(.Rows.Count, i).End(xlUp).Row = 1 Then
                If delrng Is Nothing Then
                    Set delrng = .Columns(i)
                Else
                    Set delrng = Union(delrng, .Columns(i))
                End If
            End If
        Next i
    End With
    
    If Not (delrng Is Nothing) Then
        delrng.Delete
    End If
End Sub

Sub Run()
    DeleteBlankColumns Sheets("Sheet1")
    DeleteBlankColumns Sheets("Sheet2")
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.