在exce中删除空行和空列的方法有很多,相对而言删除空行较为简单,只需进行筛选,将空白行筛选出来,删除即可,但要删除空列比较困难。因为你不能按列进行筛选删除。Excel中没有这个功能。当然你可以用另外一种方法,就是按列进行排序将空白列排序在一起,然后删除,但这种方法面临着列的顺序被打乱的问题,吃力不讨好。本文将利用Excel中强大VBA功能来完成。

假设要删除如下图中的空白行或空白列:

文件-》选项-》自定义功能区-》主选项卡-》开发工具

插入按钮

表单控件或者ActiveX控件都可以。

先以表单控件介绍:

Alt+F11 打开vb宏编辑器,插入模块,并输入如下代码:

'删除空行
Sub DeleteEmptyRows()
Dim LastRow As Long, r As Long
LastRow = ActiveSheet.UsedRange.Rows.Count
LastRow = LastRow + ActiveSheet.UsedRange.Row - 1For r = LastRow To 1 Step -1If WorksheetFunction.CountA(Rows(r)) = 0 Then Rows(r).DeleteNext rEnd Sub
'删除空列
Sub DeleteEmptyColumns()
Dim LastColumn As Long, c As Long
LastColumn = ActiveSheet.UsedRange.Columns.Count
LastColumn = LastColumn + ActiveSheet.UsedRange.ColumnFor c = LastColumn To 1 Step -1If WorksheetFunction.CountA(Columns(c)) = 0 Then Columns(c).DeleteNext cEnd Sub

关闭编辑器后,在界面拖画一个按钮,在弹出的窗口中选中DeleteEmptyColumns(即刚才插入的删除空列)函数方法。

右键刚才拖出的按钮,右键 编辑文字 修改为 删除空列

之后在非"设计模式"下,点击测试

同样的,添加 删除空行按钮

保存时,会弹出警告:

因此需要另存为"启用宏的工作簿"。

然后保存。

再以ActiveX控件为例:

拖出按钮后,打开设计模式

在设计模式下,右键修改button的名称,即Caption属性

双击打开消息框

在打开的编辑器中,输入

    MsgBox ("消息框")

关闭设计模式和编辑器,点击按钮测试

同样的可以创建两个ActiveX按钮,完成删除所选区空列和删除所选区空行

下面的方法是用VBA代码来删除工作表指定区域中的空行和空列:
在运行代码前,先选择需要删除空行和空列的区域。如果要删除空行,则运行Delete_Empty_Rows(),指定区域中的空行将被删除。

注意所谓空行是在指定区域中的,如果在指定区域内是空行,而在指定区域外不是空行,那么这些空行还是将会被删除。删除空列则运行Delete_Empty_Columns()。

不过,此刻的代码作用在Sheet1 上

Private Sub CommandButton1_Click()MsgBox ("消息框")
End SubPrivate Sub CommandButton2_Click()Delete_Empty_Rows
End SubPrivate Sub CommandButton3_Click()Delete_Empty_Columns
End Sub
'Option Explicit
'删除所选区空行
Sub Delete_Empty_Rows()Dim rnArea As RangeDim lnLastRow As Long, i As Long, j As LongApplication.ScreenUpdating = FalselnLastRow = Selection.Rows.CountSet rnArea = SelectionIf rnArea.Rows.Count <= 1 ThenMsgBox ("请先选中一块多行包含文字的区域")GoTo LastLineEnd Ifj = 0For i = lnLastRow To 1 Step -1If Application.CountA(rnArea.Rows(i)) = 0 ThenrnArea.Rows(i).Deletej = j + 1End IfNext iIf (lnLastRow - j) > 0 ThenrnArea.Resize(lnLastRow - j).SelectEnd IfApplication.ScreenUpdating = TrueLastLine:End Sub'删除所选区空列
Sub Delete_Empty_Columns()Dim lnLastColumn As Long, i As Long, j As LongDim rnArea As RangeApplication.ScreenUpdating = FalselnLastColumn = Selection.Columns.CountSet rnArea = SelectionIf rnArea.Columns.Count <= 1 ThenMsgBox ("请先选中一块多列包含文字的区域")GoTo LastLineEnd Ifj = 0For i = lnLastColumn To 1 Step -1If Application.CountA(rnArea.Columns(i)) = 0 ThenrnArea.Columns(i).Deletej = j + 1End IfNext iIf (lnLastColumn - j) > 0 ThenrnArea.Resize(, lnLastColumn - j).SelectEnd IfApplication.ScreenUpdating = FalseLastLine:End Sub

调整好按钮位置就可以用了。不过有时候按钮会挡住文字部分,所以可以把它移动到快速访问工具栏上。

自定义到工具栏,快速访问

excel选项-自定义-从下列位置选择命令-选择宏-》STEP添加到自定义快速访问工具栏中

附件

转载于:https://www.cnblogs.com/Chary/p/No0000C1.html

[No0000C1]Excel 删除空白行和空白列VBA代码相关推荐

  1. c语言大乐透编译,Excel大乐透摇号vba代码分享,说不定就中百万了呢

    大家好我是Excel从零到一,今天闲来无聊做了一套大乐透摇号程序的vba代码分享给大家 来看下效果 Excel大乐透摇号vba代码分享,说不定就中百万了呢 Sub 摇号() Dim i, a, tes ...

  2. excel查找功能_如何使用VBA代码实现Excel的查找和替换功能?

    每天一篇Excel技术图文微信公众号:Excel星球NO.145-I Find You作者:看见星光微博:EXCELers / 知识星球:Excel HI,大家好,我是星光.这章继续给大家分享VBA常 ...

  3. 升级:DNAtools for Excel工具箱,2.x英文版- VBA代码破解工具

    原始出处:www.cnblogs.com/Charltsing/p/DnaTools.html QQ:564955427 DNA工具箱全部功能一览:    单元格焦点指示(支持Excel 2007~2 ...

  4. python 删除excel空白行和空白列

    import pandas as pd df=pd.read_excel(r'C:\Users\Administrator\Desktop\02测试.xls',"1") df.dr ...

  5. python 删除excel前几行并删除空白行和空白列

    import pandas as pd df=pd.read_excel(r'C:\Users\Administrator\Desktop\02测试.xls',"1") dfcl ...

  6. Java删除表格的基本代码,Java 删除 Excel 中的空白行和列

    当我们在操作一些包含大量数据的Excel表格时,可能会因为修改数据而留下一些空白行或列,此时我们可以借助Free Spire.XLS for Java来批量删除Excel工作表中存在的空白行和空白列, ...

  7. 如何快速轻松地在Excel中删除空白行和列

    If you have a lot of blank rows in your Excel spreadsheet, you can delete them by right-clicking eac ...

  8. 【openpyxl】python处理excel——删除指定行

    本文给出了用openpyxl删除excel满足指定条件的行或列的正确示范,同时给出了一些网络资料的常见错误供读者参考 1.正确示范✔ 因为需要删除的行数不固定,正确示范应该采用while循环来遍历ex ...

  9. Excel 宏工作簿 VBAProject 工程保护 - 代码不可查看

    目录 一. VBAProject 工程保护 二. VBA工程不可查看 一. VBAProject 工程保护 该功能由 Excel 官方提供,用于对 VBA 代码加以密码保护,具体设置方法如下动态图所示 ...

最新文章

  1. php ids,PHP / MYSQL查询id“duplicate ids”
  2. 从源码分析DEARGUI之add_selectable
  3. 快讯|工业大数据产业发展联盟成立,助力我国产业生态集聚
  4. 运用El表达式截取字符串/获取list的长度
  5. 安卓手机鸿蒙系统怎么下载,华为鸿蒙系统来了:安卓系统会成为下一个“塞班”吗?...
  6. 微软拿下美国国防部100亿美元云合同,亚马逊不干了...
  7. unity anim 组件的使用
  8. 使用代理IP软件需要了解的三个概念
  9. 李炎恢php视频教程
  10. 移动硬盘与电脑连接后 计算机中找不到,移动硬盘连接电脑后不显示盘符怎么办...
  11. dw设置html背景,Dreamweaver默认浏览器怎么设置
  12. 成长的痛苦:流播放服务令音乐人版税受损
  13. Fluent中floating point exception的问题原因及处理方法
  14. 钱包开发经验分享:BTC篇
  15. RRC协议学习—系统信息(SI)
  16. 【前沿技术RPA】 一文了解UiPath 机器人企业框架 (REFramework)
  17. 数学建模模型11——元胞自动机
  18. 一文彻底读懂物联网关键技术之——ZigBee!
  19. linphone 手机上不能接听电话
  20. 【历史上的今天】1 月 15 日:维基百科上线;信息安全大师出生;英特尔推出 Viiv

热门文章

  1. 梦幻西游服务器物品掉落概率,梦幻西游:宝图死于脚本?大量服务器滞销,几率疯狂暗改!...
  2. 如何下载旧版本virtualbox及其对应增强包
  3. 自己实现UTF-8编码解码
  4. 超分辨率图像重建技术笔记
  5. oracle标点符号的书写规则,用电脑顿号怎么打出来(基础标点符号使用规则详解)...
  6. RT-Thread 的 CPU 固件移植理解
  7. 华泰证券高级版交易脚本(1)
  8. 问道手游安卓服务器维护公告,问道手游3月9日维护公告(所有公测服务器)
  9. PS如何快速选中文字生成选区并改变颜色
  10. Linux crontab定时任务配置方法(详解)