Excel精英培训网

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

[已解决]求删除代码的代码

[复制链接]
发表于 2016-3-28 16:12 | 显示全部楼层 |阅读模式
我在sheet1下写了主要代码。thisworkbook之下我想写个超过某日期之后就删除sheet1之下的所有代码的代码。
我已在thisworkbook之下写好了如下三行代码:
Private Sub Workbook_Open()  
    If DateDiff("D", "2016-3-27", Date) > 0 Then Call 删除代码
End Sub


但是删除代码这部分我不会写。并且我的vba工程有密码,密码是123。

我看到网络上有些思路,先解除保护,再删除代码,我从度娘那里搜了几段删除代码的代码都不成功。
求大神,帮我写一段代码,框架如下。请大神多加注释,好让我学习一下。另外 sub删除代码()应该放在模块下还是类模块下,有何区别,求赐教。

sub 删除代码()
解除保护
删除sheet1下所有代码
end sub






最佳答案
2016-3-29 19:35
工作表的保护密码的确不是123,改成正确密码就可以了。
工程的密码是123,
发表于 2016-3-28 16:40 | 显示全部楼层
Sub 删除代码()
    Dim c
    '遍历本工作簿的工程的部件集合
    For Each c In ThisWorkbook.VBProject.VBComponents
        '如果部件c是标准模块,并且名称是sheet1
        If c.Type = 100 And c.Name = "Sheet1" Then
            '删除部件c第1行到最后1行的代码
            c.CodeModule.DeleteLines 1, c.CodeModule.CountOfLines
        End If
    Next
End Sub

评分

参与人数 1学分 +2 收起 理由
0126 + 2 学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-3-28 20:12 | 显示全部楼层
爱疯 发表于 2016-3-28 16:40
Sub 删除代码()
    Dim c
    '遍历本工作簿的工程的部件集合

多谢,但是我怎么解除保护呢,我的设置了密码是123。如果不解除保护是没法删除代码的。
回复

使用道具 举报

发表于 2016-3-28 20:50 | 显示全部楼层
上次你的附件看下
回复

使用道具 举报

 楼主| 发表于 2016-3-28 21:26 | 显示全部楼层
好的,明天,我上班就上传。
回复

使用道具 举报

 楼主| 发表于 2016-3-29 09:46 | 显示全部楼层
爱疯 发表于 2016-3-28 20:50
上次你的附件看下

请大神赐教。

test.rar

14.59 KB, 下载次数: 5

回复

使用道具 举报

发表于 2016-3-29 10:27 | 显示全部楼层
test2.rar (17 KB, 下载次数: 12)
回复

使用道具 举报

 楼主| 发表于 2016-3-29 18:02 | 显示全部楼层
爱疯 发表于 2016-3-29 10:27
只是将2楼代码放到6楼附件的模块1。

这样就够了,只要Workbook_Open()中的条件为真,自然就执行删除 ...

执行删除代码的结果如下,还是错误啊
test.JPG
回复

使用道具 举报

发表于 2016-3-29 18:14 | 显示全部楼层
QQ截图20160329180702.jpg

勾了没?
回复

使用道具 举报

 楼主| 发表于 2016-3-29 19:04 | 显示全部楼层
爱疯 发表于 2016-3-29 18:14
勾了没?

勾上之后是这样。
test2.JPG
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 14:36 , Processed in 0.408477 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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