Microsoft技术社区联盟成员,全球领先的Excel2003/2007/2010门户,Office培训学习的最佳社区
设为首页收藏本站|繁體中文 切换到窄版

Excel Home论坛

 找回密码
 免费注册

用新浪微博连接

一步搞定

QQ登录

只需一步,快速开始

魔方网表,Excel终结者,永久免费 Excel服务器2010软件和教程下载 菜鸟啃Excel: 样章试读
Excel不给力? 何不试试FoxTable! 2012年Excel免费培训班2-6月开课计划 新人必读:ExcelHome最佳学习方法 免费下载Excel行业应用视频教程
精粹:成为Excel高手的捷径 免费下载39集新Excel精粹视频教程 免费学习Excel数据透视表视频教程 入门必看《循序渐进学Excel》视频
Excel辅助工具的巅峰之作--Kutools 免费学习Excel 2007精粹视频教程 Office Tab,Office界面的革命性创新 搞不定老板要的报表?我们来帮您
  • 866财富
  • 0鲜花
  • 0技术
    • 等级 3EH中级
    积分排行
    2392
    帖子
    287
    精华
    0
    分享
    0

    [已解决]如何用代码实现删除数据间的空白行? [复制链接]

     在数据中间有很多空白的行,如何删除?总共四万多行,其中 空白行有二万多行,数据多了用筛选复制不行,用代码如何实现?


    [此贴子已经被作者于2008-3-17 22:23:07编辑过]

    附件: 你需要登录才可以下载或查看附件。没有帐号?免费注册
  • 117763财富
  • 26鲜花
  • 8技术
  • 积分排行
    1
    帖子
    42876
    精华
    3
    分享
    2

    优秀管理者 金牌管理者

    发表于 2008-3-17 19:46:14 |显示全部楼层

    附件: 你需要登录才可以下载或查看附件。没有帐号?免费注册
  • 866财富
  • 0鲜花
  • 0技术
    • 等级 3EH中级
    积分排行
    2392
    帖子
    287
    精华
    0
    分享
    0
    发表于 2008-3-17 20:09:24 |显示全部楼层

    谢谢版主!

    能不能实现删除中间的空白行,而不是把A例的数据筛选复制到其它例?

  • 10504财富
  • 0鲜花
  • 15技术
  • 积分排行
    127
    帖子
    4401
    精华
    0
    分享
    0
    发表于 2008-3-17 20:09:37 |显示全部楼层
    Sub 删除空白行()
    Dim x%, a% '定义自变量x,a
    a = Range("a65536").End(xlUp).Row '找到A列最后一个非空单元格
    For x = 1 To a '在1和a之间循环
    If Len(Cells(a - x, 1)) = 0 Then '从下往上通过字符判断是否是空单元格
    Cells(a - x, 1).EntireRow.Delete '如果是则删除空单元格所在行
    End If
    Next x
    End Sub
    因为信任,所以简单。
  • 866财富
  • 0鲜花
  • 0技术
    • 等级 3EH中级
    积分排行
    2392
    帖子
    287
    精华
    0
    分享
    0
    发表于 2008-3-17 20:21:45 |显示全部楼层

    感谢syz105729913,神速啊!

    几秒钟就回贴了

    是不是数据多了有点问题出现了。

    就是这句:

    a = Range("a65536").End(xlUp).Row '找到A列最后一个非空单元格



    [此贴子已经被作者于2008-3-17 20:23:50编辑过]

    附件: 你需要登录才可以下载或查看附件。没有帐号?免费注册
  • 22财富
  • 0鲜花
  • 0技术
    • 等级 2EH初级
    积分排行
    3000+
    帖子
    6
    精华
    0
    分享
    0
    发表于 2008-3-17 20:49:02 |显示全部楼层
    Sub sc()
    Dim x&
    For x = Range("a65536").End(xlUp).Row To 1 Step -1
        If Cells(x, 1) = "" Then Rows(x).Delete
    Next
    End Sub
  • 4755财富
  • 8鲜花
  • 117技术
  • 积分排行
    83
    帖子
    906
    精华
    11
    分享
    0
    发表于 2008-3-17 20:52:24 |显示全部楼层

    Sub DeleteEmptyRows()
        Dim LastRow As Long, r As Long
        LastRow = ActiveSheet.UsedRange.Rows.Count
        LastRow = LastRow + ActiveSheet.UsedRange.Row - 1
        Application.ScreenUpdating = False
        For r = LastRow To 1 Step -1
            If WorksheetFunction.CountA(Rows(r)) = 0 Then Rows(r).Delete
        Next r

    Application.ScreenUpdating = True
    End Sub

    上面是《宝典》中的一段示例代码,能高效地快速删除空行,您试试!

    [此贴子已经被作者于2008-3-17 20:54:10编辑过]

    Excel博客:http://www.excelperfect.com
    完美Excel QQ群:140427507
  • 866财富
  • 0鲜花
  • 0技术
    • 等级 3EH中级
    积分排行
    2392
    帖子
    287
    精华
    0
    分享
    0
    发表于 2008-3-17 21:04:05 |显示全部楼层

    感谢各位的热心解答,解决了,fanjy版主的运行速度很快。

    感谢你们!!!

  • 10504财富
  • 0鲜花
  • 15技术
  • 积分排行
    127
    帖子
    4401
    精华
    0
    分享
    0
    发表于 2008-3-17 21:12:05 |显示全部楼层
    Dim x%, a% '定义自变量x,a
    红色部分改为x&,a&
    因为信任,所以简单。
  • 1633财富
  • 0鲜花
  • 0技术
    • 等级 3EH中级
    积分排行
    1517
    帖子
    499
    精华
    0
    分享
    0
    发表于 2008-9-30 17:08:04 |显示全部楼层

    学习,留个记号

    发表回复

    您需要登录后才可以回帖 登录 | 免费注册

    发帖时请遵守我国法律,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任。
    回顶部