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