EXCEL批量隔行删除方法大全

发布于 2010-07-19 作者 [重庆SEO]

本文来自百度空间博客搬家

2007年开始使用的是 hi.baidu.com/udjy
后来百度空间强制升级为轻博客 hi.baidu.com/imnoco
2015年百度关闭了百度空间

EXCEL隔行删除,只实验了下自动筛选(也就是下文第一种方法),确实可行,后面的宏方法应该也是可行的。

Excel中实现隔行删除


选一个空列做辅助列  
假设是F列  
在F1里填上  
=MOD(ROW(F1),2)

然后复制到本列其它单元格中  
打开数据--筛选--自动筛选  
选中0或1  
然后全选   删除  
就搞定了  


选的时候要选中整行  
我试过的  
完全可以  
   
这个方法只能说是半自动的,对付几百行还能将就  
如果真的有上万行,还是做个宏好一些  
而且也很简单  
Sub   RowsDelete(Odd   As   Long)  
          Dim   nRows   As   Long  
          Dim   i   As   Long  
          With   Worksheets("sheet1")  
                  nRows   =   .UsedRange.Rows.Count  
                  For   i   =   nRows   To   2   Step   -1  
                          If   i   Mod   2   =   Odd   Then  
                                  .Rows(i).Delete  
                          End   If  
                  Next  
          End   With  
End   Sub  
    Odd为0时删除偶数行   为1时删除奇数行  

这种东西为什么要用VBA或者宏?  
   
只需要加一个辅助列即可:  
   
在某列输入公式:   =MOD(ROW(),2)          
然后把公式复制到相应的数据区域即可.  
   
如果您希望删除奇数列,那么使用筛选,选取辅助列值为1,然后选中这些行,删除即可.  
如果您希望删除偶数列,那么选取辅助列值为0,然后选中筛选出来的行,删除即可.  
   
然后选中辅助列,进行排序,这样中间就不会出现空行了。最后删除辅助列  
   
远比使用VBA来的快捷.另外:行数即使真的几万行一样可行.

如果是几万行   复制一次公式也挺烦的  
不如VBA来得方便  
   
楼主可以打开你的Excel文件  
按   Alt+F11   打开VBA编辑器  
在左边找到该文件的ThisWork   双击它  
然后把俺的代码复制到右边的代码区  
   
这段代码是处理名为sheet1的表单的  
你要根据你的情况改一下  
把光标点到这段代码里  
然后按F5  
   
哗~~~~~~~~~~~~  
整个世界清静了  


选定你要***作的工作表
"工具"->"宏"->"VB编辑器"
"插入"->"模块"
复制下面的代码行,删除前面的引号,并修改其中注释的fristline和linecount后面的数字,然后按下"F5"运行即可


Sub Macro1()
  
fristline = 1                  '填需删除的第一行的行号
linecount = 100                '填需删除的最后一行的行号
fristdelete = Int((fristline + 1) / 2) * 2
str1 = fristdelete
For i = 1 To (linecount - fristdelete) / 2
    str1 = str1 & "," & fristdelete + i * 2
Next
Range(str1).Delete
End Sub

PS:中学的时候学电脑,感觉什么都好难,但现在觉得只要工作生活需要,自己上网找,还是很容易的!