Excel精英培训网

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

[已解决]【求教】批量删除过程

[复制链接]
发表于 2010-10-29 20:19 | 显示全部楼层 |阅读模式

如题,在excel里面,自己建了多个模块,并命名,各模块里面均有多个过程。

希望做到把这个excel文件的所有过程全部删除,但保留空的模块,即每个模块里面的过程都删除,而不是直接删除模块。

最佳答案
2010-10-29 20:54
Sub test()
    With ThisWorkbook
        For i = 1 To .VBProject.VBComponents.Count
            With .VBProject.VBComponents(i).CodeModule
                .DeleteLines 1, .CountOfLines
            End With
        Next
    End With
End Sub
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-10-29 20:54 | 显示全部楼层    本楼为最佳答案   

Sub test()
    With ThisWorkbook
        For i = 1 To .VBProject.VBComponents.Count
            With .VBProject.VBComponents(i).CodeModule
                .DeleteLines 1, .CountOfLines
            End With
        Next
    End With
End Sub
回复

使用道具 举报

 楼主| 发表于 2010-10-29 21:00 | 显示全部楼层

QUOTE:
以下是引用Zipall在2010-10-29 20:54:00的发言:
Sub test()
    With ThisWorkbook
        For i = 1 To .VBProject.VBComponents.Count
            With .VBProject.VBComponents(i).CodeModule
                .DeleteLines 1, .CountOfLines
            End With
        Next
    End With
End Sub

哇,高手呀,能在帮助各个忙吗?

就是你写的这个过程不删除,或者我新建一个模块叫“删除模块”里面放你写的这个过程,通过不删除该模块的内容来不删除你写的这个过程。

希望可以实现。谢谢

回复

使用道具 举报

发表于 2010-10-29 21:07 | 显示全部楼层

借用2楼的代码
Sub test()
    With ThisWorkbook
        For i = 1 To .VBProject.VBComponents.Count
            If .VBProject.VBComponents(i).CodeModule <> "删除模块" Then
                With .VBProject.VBComponents(i).CodeModule
                    .DeleteLines 1, .CountOfLines
                End With
            End If
        Next
    End With
End Sub
回复

使用道具 举报

发表于 2010-10-29 21:09 | 显示全部楼层

假设这段代码放在模块AAA中

Sub TEST()
    With ThisWorkbook
        For i = 1 To .VBProject.VBComponents.Count
            With .VBProject.VBComponents(i)
                If .Name <> "AAA" Then .CodeModule.DeleteLines 1, .CodeModule.CountOfLines
            End With
        Next
    End With
End Sub

回复

使用道具 举报

 楼主| 发表于 2010-10-29 21:12 | 显示全部楼层

QUOTE:
以下是引用那么的帅在2010-10-29 21:07:00的发言:
借用2楼的代码
Sub test()
    With ThisWorkbook
        For i = 1 To .VBProject.VBComponents.Count
            If .VBProject.VBComponents(i).CodeModule <> "删除模块" Then
                With .VBProject.VBComponents(i).CodeModule
                    .DeleteLines 1, .CountOfLines
                End
  With
            End
  If
        Next
    End
  With
End
  Sub

谢谢那么的帅了

谢谢二楼的最佳答案

回复

使用道具 举报

发表于 2010-10-29 21:13 | 显示全部楼层

5楼的答案更简捷,也学会了新的一招。
回复

使用道具 举报

发表于 2010-10-29 21:14 | 显示全部楼层

很少对模块操作,来学习,谢谢[em25][em25]

回复

使用道具 举报

发表于 2010-10-29 21:18 | 显示全部楼层

好呀,值得学习!支持一下先![em01]
回复

使用道具 举报

 楼主| 发表于 2010-10-29 21:21 | 显示全部楼层

QUOTE:
以下是引用hhzjxss在2010-10-29 21:18:00的发言:
好呀,值得学习!支持一下先![em01]

大侠都来支持,最佳答案的老师也是个大侠了

谢谢大家关注问题

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-8 11:24 , Processed in 0.315503 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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