Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2237|回复: 2

[已解决]删除两列单元格区域中的空单元格

[复制链接]
发表于 2013-11-6 15:23 | 显示全部楼层 |阅读模式
需要将M3:N20单元格区域中的空单元格删除。但执行以下代码后只能删除M列的空单元格,而N列无效,请问如何修改代码?

    Range("M3:N2000").Select
    Selection.SpecialCells(xlCellTypeBlanks).Select
    Selection.Delete Shift:=xlUp

最佳答案
2013-11-7 06:29
  1. Sub 删除空单元格()
  2.     Dim rng As Range, r As Range
  3.     For Each rng In Range("M3:N2000")
  4.         If rng = "" Then
  5.             If r Is Nothing Then
  6.                 Set r = rng
  7.             Else
  8.                 Set r = Union(r, rng)
  9.             End If
  10.         End If
  11.     Next
  12.     If Not r Is Nothing Then r.Delete shift:=xlUp
  13. End Sub
复制代码
上面代码虽然可以达到要求(只是做了少量数据测试),感觉不如用数组效率高
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-11-7 06:29 | 显示全部楼层    本楼为最佳答案   
  1. Sub 删除空单元格()
  2.     Dim rng As Range, r As Range
  3.     For Each rng In Range("M3:N2000")
  4.         If rng = "" Then
  5.             If r Is Nothing Then
  6.                 Set r = rng
  7.             Else
  8.                 Set r = Union(r, rng)
  9.             End If
  10.         End If
  11.     Next
  12.     If Not r Is Nothing Then r.Delete shift:=xlUp
  13. End Sub
复制代码
上面代码虽然可以达到要求(只是做了少量数据测试),感觉不如用数组效率高
回复

使用道具 举报

发表于 2013-11-7 14:11 | 显示全部楼层
  1. Range("M3:N2000").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
复制代码
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-19 12:25 , Processed in 0.220791 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表