【问题标题】:Delete entire blank columns删除整个空白列
【发布时间】:2022-01-27 04:57:16
【问题描述】:

需要删除工作表中的空白列。我需要整个列删除,它将带有文本的导入列移动到工作表的开头。带有文本的列的位置每周都会改变,所以我需要一些可以删除完整列的东西,直到最后一个文本列。下面列出了我正在尝试的代码。

Sub Delete_Columns
 C = ActiveSheet.Cells.SpecialCells(xlLastCell).Column
   Do Until C = 0
   If WorksheetFunction.CountA(Columns(C)) = 0 Then
   Columns(C).Delete
   End If
   C = C - 1
   Loop
End Sub

【问题讨论】:

  • 什么特别不适合你?
  • @BigBen 我添加了一张关于文本统计信息的图片。如您所知,它从 TN 列开始。一个这个页面我需要它从A栏开始
  • 那么当你使用上面的代码时会发生什么或没有发生什么?
  • @BigBen 当我运行代码列 A 到 TM 时是空白的,抱歉,我以为我说清楚了。我需要文本从 A 列开始
  • 提供的代码适用于我,TN 列中的文本和 A 到 TM 列中的空白。运行后,文本移至 A 列。提供的代码究竟是如何不适合您的?

标签: excel vba


【解决方案1】:

删除空白列

Option Explicit

Sub DeleteBlankColumns()
    
    Dim ws As Worksheet: Set ws = ActiveSheet
    Dim rg As Range: Set rg = ws.UsedRange
    Dim rCount As Long: rCount = rg.Rows.Count
    
    Dim dcrg As Range
    Dim crg As Range
    
    For Each crg In rg.Columns
        If Application.CountBlank(crg) = rCount Then
            If dcrg Is Nothing Then
                Set dcrg = crg
            Else
                Set dcrg = Union(dcrg, crg)
            End If
        End If
    Next crg
    If dcrg Is Nothing Then Exit Sub
       
    dcrg.EntireColumn.Delete
    
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2013-08-15
    相关资源
    最近更新 更多