Excel精英培训网

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

[已解决]如何保留固定工作页删除其他的

[复制链接]
发表于 2016-12-28 10:35 | 显示全部楼层 |阅读模式
本帖最后由 lotgot 于 2016-12-28 11:20 编辑

各位老师好,请问vba如何实现保留固定工作页删除其他的工作页
比如我有sheet1 到 sheet10
我要保留 sheet1 sheet2 sheet3 sheet4 sheet5 sheet6
其他的都删除
**sheet1 - sheet10只是个比喻现实可能其他命名**

请问vba是可以实现这个功能吗?在这里先谢谢各位老师
最佳答案
2016-12-28 10:51
试试这个
Sub TEST()
    Application.DisplayAlerts = False
    For Each SH In Sheets
        If InStr("Sheet1,Sheet5,ABC,...", SH.Name) = 0 Then SH.Delete '引号内填入你需要保留的工作表
    Next
    Application.DisplayAlerts = True
End Sub
发表于 2016-12-28 10:36 | 显示全部楼层
只要代码写得溜,没有解决不了的问题
回复

使用道具 举报

 楼主| 发表于 2016-12-28 10:38 | 显示全部楼层
望帝春心 发表于 2016-12-28 10:36
只要代码写得溜,没有解决不了的问题

小弟我只会录制与基础的vba而已
需要各位老师大神协助~~
回复

使用道具 举报

发表于 2016-12-28 10:48 | 显示全部楼层
Sub test()
    Dim str As String
    Dim sh As Worksheet

    str = "Sheet2,Sheet4"    '自己指定,如果是区分大小写
    For Each sh In Sheets
        If InStr(str, sh.Name) Then sh.Delete
    Next
End Sub

回复

使用道具 举报

发表于 2016-12-28 10:51 | 显示全部楼层    本楼为最佳答案   
试试这个
Sub TEST()
    Application.DisplayAlerts = False
    For Each SH In Sheets
        If InStr("Sheet1,Sheet5,ABC,...", SH.Name) = 0 Then SH.Delete '引号内填入你需要保留的工作表
    Next
    Application.DisplayAlerts = True
End Sub
回复

使用道具 举报

 楼主| 发表于 2016-12-28 11:18 | 显示全部楼层
爱疯 发表于 2016-12-28 10:48
Sub test()
    Dim str As String
    Dim sh As Worksheet

老师我使用您的代码结果是输入指定的sheet全删了{:081:}
不过我用楼下那位老师的代码就可以了~谢谢您的协助
回复

使用道具 举报

 楼主| 发表于 2016-12-28 11:19 | 显示全部楼层
zjdh 发表于 2016-12-28 10:51
试试这个
Sub TEST()
    Application.DisplayAlerts = False

谢谢老师完全的解决我的问题,非常感谢{:221:}
回复

使用道具 举报

发表于 2016-12-28 14:46 来自手机 | 显示全部楼层
马虎了,要改成
InStr(str, sh.Name)=0
回复

使用道具 举报

 楼主| 发表于 2016-12-29 12:23 | 显示全部楼层
爱疯 发表于 2016-12-28 14:46
马虎了,要改成
InStr(str, sh.Name)=0

感谢老师的回复,学习了~
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 19:41 , Processed in 0.437894 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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