EXCLE中用VBA保留B列和D列。其他列全删除

 我来答
coolbi5
2016-06-14 · TA获得超过1万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:2428万
展开全部
Option Explicit

Sub del()
    Dim urng As Range
    Dim i As Integer
    With ActiveSheet
        Set urng = .UsedRange
        For i = urng.Columns.Count To 1 Step -1
            If Chr(i + 64) <> "B" And Chr(i + 64) <> "D" Then Columns(i).Delete
        Next i
    End With
    Set urng = Nothing
End Sub

 代码是对当前工作表产生效果的,就是说你要先打开你要删除的表格,然后执行del宏就会删除

woshipachong
2016-06-14 · TA获得超过820个赞
知道小有建树答主
回答量:999
采纳率:50%
帮助的人:407万
展开全部
是保留B和D列内容?还是将其它列全部删除,最终B列变成A弄,D列变成B列?

如果是保留的话,用下面的代码即可:
Sub 保留BD列()
Dim acCol, Col
Set acCol = ActiveSheet.UsedRange.Columns
For Each Col In acCol
If Col.Column <> 2 And Col.Column <> 4 Then Col.Value = ""
Next
End Sub
追问
是的。保留B和D,然后B变成A,D变B。其他的列删除。
还有就是有很多个EXCLE表都要这样子弄。
需要怎么弄。
追答
Sub 保留BD列()
Dim acCol, Col
Set acCol = ActiveSheet.UsedRange.Columns
For Each Col In acCol
If Col.Column 2 And Col.Column 4 Then Col.Value = ""
Next
Range("A:A,C:C").Delete Shift:=xlToLeft
End Sub

每个工作表用一下这个宏就可以了,或者你自己修正编历所有sheet表就可以了,就是上面再加个循环
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式