excel中如何实现从第9列开始,每隔1列自动删除后面的列?用宏或者其他方法只要能实现都行

excel中如何实现从第9列开始,每隔1列自动删除后面的列?比如11,13,15…… 用宏或者其他方法只要能实现即可~

亲,可以用宏。测试结果和代码如下:

Sub sc()
Dim i As Long
Dim u As Range
Set u = Columns(9)
For i = 9 To Cells(1, Columns.Count).End(xlToLeft).Column Step 2
    Set u = Union(u, Columns(i))
Next
u.Delete
End Sub

追问

是要达到上面图片的效果,但是测试了代码却仅可以删掉第九列。后面的几百列都没有被删掉。我用的是office2013的版本,是否有影响?

追答

我估计是最大列数判断的问题。
因为不知道你最大列数是多少,所以程序中是把第一行最右边有数据的那个单元格作为最后一个单元格。如果你第一行是合并单元格等情况,就会出现判断不准。
建议你告诉我最大到哪一列,我直接把列数写进代码。

追问

有500列,谢谢~

追答Sub sc()
Dim i As Long
Dim u As Range
Set u = Columns(9)
For i = 9 To 500 Step 2
    Set u = Union(u, Columns(i))
Next
u.Delete
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-03
请上图祥细说明你要做什么追问

请看上面网友的动图

相似回答