Note: The other languages of the website are Google-translated. Back to English
English English

如何在Excel中快速删除多个空列?

有时,当您从某些来源(例如网页,CSV,文本等)将数据导入Microsoft Excel时,可能会有许多空列。 删除每个空列必须是耗时的。 因此,我们中的某些人寻求解决此问题的简便方法。 本文收集了一些技巧性的技巧,以帮助您快速删除多个空列。

使用公式删除工作表中的多个空列

使用VBA代码删除工作表中的多个空列

删除选区/活动工作表/整个工作簿中的多个空列,并提供有用的功能

使用VBA代码删除带有标题的多个空列


使用公式删除工作表中的多个空列

在Excel中,您可以应用公式来确定列是否为空白,然后使用 排序 功能可将所有空白列排序在一起,然后立即将其删除。 请这样做:

1。 在数据范围的顶部添加新行,请参见屏幕截图:

2。 然后将以下公式输入到单元格A1中,然后将填充手柄拖动到右侧以将此公式应用于其他单元格,如果该列为空白,则将显示TRUE,否则显示FALSE,请参见屏幕截图:

=COUNTA(A2:A1048576)=0

3。 然后选择包括助手行的数据范围,然后单击 数据 > 排序,请参见屏幕截图:

4。 在弹出 排序 对话框,单击 附加选项 按钮,在下面 排序选项 对话框中选择 从左到右排序 选项,请参见屏幕截图:

5。 点击 OK 按钮返回 排序 对话框,然后选择 第1行 来自 排序方式 下拉菜单,然后选择 单元格值排序 部分中,选择 最大到最小 来自 购买 部分,请参见屏幕截图:

6。 然后,所有空列都已排序在数据的左侧,现在,您只需要选择所有列,然后右键单击,选择 删除 要立即删除这些空白列,请参见屏幕截图:


使用VBA代码删除工作表中的多个空列

如果您想使用VBA宏,事情会变得容易得多。 以下VBA代码可能会对您有所帮助,请这样做:

1。 按住 其他 + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下宏粘贴到 模块 窗口。

VBA代码:删除选择中的多个空白列:

Sub DeleteEmptyColumns()'更新依据 Extendoffice
作为范围的Dim rng作为范围的Dim InputRng作为范围xTitleId =“ KutoolsforExcel”设置InputRng = Application.Selection设置InputRng = Application.InputBox(“ Range:”,xTitleId,InputRng.Address,类型:= 8)Application.ScreenUpdating = False对于i = InputRng.Columns.Count到1步骤-1设置rng = InputRng.Cells(1,i).EntireColumn如果Application.WorksheetFunction.CountA(rng)= 0然后rng.Delete End如果下一个Application.ScreenUpdating = True End Sub

3。 按 F5 键以运行此宏,然后在弹出对话框中选择所需的工作范围。 看截图:

4. 单击 OK,然后删除选择中的所有空列。 看截图:


删除选区/活动工作表/整个工作簿中的多个空列,并提供有用的功能

新的 删除隐藏(可见)行和列 实用程序 Kutools for Excel 可以帮助您一次快速删除多个空行或列。

小贴士:申请这个 删除隐藏(可见)行和列 功能,首先,您应该下载 Kutools for Excel,然后快速轻松地应用该功能。

安装后 Kutools for Excel,请这样做:

1。 点击 库工具 > 删除 > 删除隐藏(可见)行和列,请参见屏幕截图:

2。 在 删除隐藏(可见)行和列 对话框中,指定要从中应用操作的范围 在看 下拉列表。 (如果您选择 在选定范围内,则必须先选择要使用的范围。)然后检查 删除类型。 并选择 空白栏详细类型。 看截图:

3。 然后点击 OK。 并且空白列已从所选范围中删除。 看截图:


使用VBA代码删除带有标题的多个空列

有时,您可能希望删除工作表中仅包含标题的所有空列,以下VBA代码可以帮您一个忙,请执行以下步骤:

1。 按住 其他 + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下宏粘贴到 模块 窗口。

VBA代码:删除所有带有标题的空列

Sub deleteblankcolwithheader()
'updateby Extendoffice
    Dim xEndCol As Long
    Dim I As Long
    Dim xDel As Boolean
    On Error Resume Next
    xEndCol = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    If xEndCol = 0 Then
        MsgBox "There is no data on """ & ActiveSheet.Name & """ .", vbExclamation, "Kutools for Excel"
        Exit Sub
    End If
    Application.ScreenUpdating = False
    For I = xEndCol To 1 Step -1
        If Application.WorksheetFunction.CountA(Columns(I)) <= 1 Then
            Columns(I).Delete
            xDel = True
        End If
    Next
    If xDel Then
        MsgBox "All blank column(s) with only a header row have been deleted.", vbInformation, "Kutools for Excel"
    Else
        MsgBox "There are no Columns to delete as each one has more data (rows) than just a header.", vbExclamation, "Kutools for Excel"
    End If
    Application.ScreenUpdating = True
End Sub

3。 然后按F5键运行此代码,将弹出一个提示框,提醒您标题为空白的列将被删除,请参见屏幕截图:

4.然后,单击“确定”按钮,一次删除当前工作表中仅标题的所有空白列。 查看屏幕截图:


更多相关文章:

  • 在Excel中删除所有隐藏的行或列
  • 如果您有一个很大的工作簿,其中包含许多隐藏的行和列,而现在隐藏的数据不可用,则您想要删除所有这些。 您如何快速删除它们?
  • 在Excel中基于背景色删除行
  • 如何根据背景色删除整个行? 在此示例中,我需要删除所有单元格填充有蓝色背景色的所有行,如下面的屏幕截图所示。 通过本文,您将获得一些代码以在Excel中完成此任务。


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能。 支持Office / Excel 2007-2019和365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能30天免费试用。 60天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (8)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
我发现在最后一行数据之后转到该行要简单得多,输入“Shift-Ctrl-End”以突出显示后面的所有空白行(更快),右键单击并输入“删除所有行/列”。 系统并没有浪费太多时间以这种方式进行搜索,因此它一眨眼就干净了,20 MB 的文件被删除到了 20 kb 的大小。
该评论由网站上的主持人最小化
以上细节对我个人使用很有帮助。 感谢您的指导。 M.KARTHIKEYAN :-)
该评论由网站上的主持人最小化
非常有帮助的页面。 谢谢你。 :-) 我的挑战是我有带有标题的列,但该列中没有数据。 只有标题存在。 如何删除没有数据但标题存在的列? :o
该评论由网站上的主持人最小化
你好,你提到的东西很有帮助。 我想从你这边得到一点帮助。 每天上午下载一些文件并使用枢轴准备报告。 这是我的日常任务和常规过程。 如果不使用枢轴,我怎么能做到这一点。 例如:如果我昨天在“A”Excel 文件中准备了报告。 第二天在“A” Excel 文件中,我只是替换了新的“B” Excel 文件数据。 通过这个自动报告将被创建? 是否可以?
该评论由网站上的主持人最小化
嗨,谁能指导我如何删除一行或一列中的空白单元格...注意整个空白列或行...我只需要在一列中删除空白单元格
该评论由网站上的主持人最小化
你好,


尝试实现下面的代码
该评论由网站上的主持人最小化
感谢它带有基本 excel 选项的非常有用的页面 :)
该评论由网站上的主持人最小化
它删除了我名字栏中的所有名字! 啊!
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点