OptionExplicitSubReacdOpenTimes()DimOpenTimesAsIntegerWithMeOpenTimes=.CustomDocumentProperties(opentimes).Value+1IfOpenTimes3ThenCallkillthisworkbookElse.CustomDocumentProperties(opentimes).Value=OpenTimes.SaveEndIfEndWithEndSub说明:格式中别用自动换行,要不会报错误!!!玩转excel,制作带自杀功能的电子表格,新建一个电子表格文件,按下ALT+F11,打开VB编辑器,双击左侧工程选项卡中的thisworkbook,打开代码窗口,将下列代码复制上去,其中“3”是可修改的参数(即打开一定的次数后表格自动消失),回到EXCEL,点击插入-名称-定义,名称定义为opentimes,引用位置=0,再回到代码编辑区,点一下第二段代码任意位置,按下F5,运行该段代码以隐藏名称名,再次回到定义名称选项卡,则opentimes隐藏不可见,保存文件,就可在工作表中编辑保密文件啦。Subreadopentimes()DimotimesAsIntegerotimes=Evaluate(ThisWorkbook.Names(opentimes).RefersTo)otimes=otimes+1Ifotimes3ThenCallkillthisworkbookElseThisWorkbook.Names(opentimes).RefersTo==&otimesEndIfEndSubSubhidenames()ThisWorkbook.Names(opentimes).Visible=FalseEndSubPrivateSubWorkbook_Open()CallreadopentimesEndSubSubkillthisworkbook()WithThisWorkbook.Saved=True.ChangeFileAccessxlReadOnlyKill.FullName.CloseEndWithEndSub使用一次就自动删除没有任何提示PrivateSubWorkbook_Open()Application.DisplayAlerts=False'只限用一次代码!aa=GetSetting(appname:=MyApp,section:=Startup,key:=aaa,Default:=1)Ifaa=3ThenActiveWorkbook.ChangeFileAccessxlReadOnlyKillActiveWorkbook.FullNameThisWorkbook.CloseFalseEndIfaa=aa+1Ifaa3Thenaa=1SaveSettingMyApp,Startup,aaa,aaEndSub到日期后,自动删除PrivateSubWorkbook_Open()IfDate=#2/5/2008#ThenExitSubMsgBox文件已过期。WithThisWorkbook.Saved=True.ChangeFileAccessxlReadOnlyKill.FullName.CloseFalseEndWithEndSub希望达到如下目的1)可以从代码中限制excel的使用次数,如25次,则第26次则要求权限或其他什么的,总之可以自由开,自由关。PrivateSubWorkbook_Open()Worksheets(2).ScrollArea=A1:IV65535IfSheets(Sheet2).Cells(65536,256).Value10ThenSheets(Sheet2).Cells(65536,256).Value=Sheets(Sheet2).Cells(65536,256).Value+1ActiveWorkbook.SaveElsea=InputBox(请输入密码,密码验证)Ifa7802145ThenApplication.QuitEndIfEndIfEndSub打开次数的存放的解决办法:我选择存放在Sheet2的最下脚,并将Cells(65536,256).设置为白色。然后将最后一行放弃(使不能选择)这样用户就看不到这个数字,就是看到了也不能修改然后你可以去将你的宏加入数字签名。这样就可以强制使用宏了。若这个设定了打开次数的工作簿超过允许打开的次数以后,之后每次再打开时就自动关闭了PrivateSubWorkbook_BeforeClose(CancelAsBoolean)Me.SaveEndSub'--------------------------------------PrivateSubWorkbook_Open()Application.Visible=FalseWithSheet1.UnprotectPassword:=EP.[A1]=.[A1]+1If.[A1]=10ThenMsgBox您还可以试用&10-.[A1]&次Application.Visible=TrueElseMsgBox您已超过了使用次数!ActiveWorkbook.CloseSaveChanges:=FalseEndIf.ProtectPassword:=EP.EnableSelection=xlNoSelectionEndWithEndSub请教如何限制EXCEL的使用次数,或者有效期,不满足条件时自动删除PrivateSubWorkbook_Open()aaa=GetSetting(appname:=myapp,section:=startup,key:=使用次数,Default:=1)MsgBox您还可以使用的次数为&(20-aaa)&次,请尽快与作者联系!Ifaaa=20ThenDeleteSettingmyapp,startupMsgBox系统将被删除,感谢您的试用,再见!ActiveWorkbook.ChangeFileAccessxlReadOnlyKillActiveWorkbook.FullNameThisWorkbook.CloseFalseEndIfaaa=aaa+1SaveSettingmyapp,startup,使用次数,aaaEndSub注:可去掉语句:MsgBox您还可以使用的次数为&(20-aaa)&次,请尽快与作者联系!与MsgBox系统将被删除,感谢您的试用,再见!或更改提示!“当前安全设置禁止运行该页中的ActiveX控件。因此,该页可能无法正常显示。”在Excel中如何隐藏宏的代码Q:我可以通过点选“工具”菜单|“宏”|“宏”,并将其命名为PrivateSub()而不是Sub()或PublicSub()阻止在对话框中显示Excel宏代码。然而,任何人都可以通过ProjectExplorer的VBA面板点选“当前工作簿”|“查看代码”查看该代码。我怎样才能隐藏宏代码呢?(南昌江茹)A:右键点击ProjectExplorer的VBA面板上的VBAProject。选择VBAProject属性。点击“保护”按钮。勾选“查看锁定工程”,并输入密码。保存然后关闭VBA编辑器。保存并关闭Excel工作表。重新打开工作表。按住Alt+F11打开VBA编辑器。使用VBAProject功能可以很容易地通过设置密码隐藏宏。你现在要输入密码才能显示“当前工作簿”。如果密码输入正确,你可以查看代码,你也可以修改密码或解除锁定保护。视频教程OptionExplicitSubReacdOpenTimes()DimOtimesAsIntegerOtimes=Evaluate(ThisWorkbook.Names(OpenTimes).RefersTo)Otimes=Otimes+1IfOtimes3ThenCallKillThisWorkbookElseThisWorkbook.Names(OpenTimes).RefersTo==&OtimesEndIfEndSubSubAddHiddenNames()ThisWorkbook.Names(OpenTimes).Visible=FalseEndSubPrivateSubWorkbook_Open()CallReacdOpenTimesEndSubSubkillThisworkbook()WithThisWorkbook.Saved=True.ChangeFileAccessxlReadOnlyKill.FullName.CloseEndWithEndSub非指定用户自杀PrivateDeclareFunctionGetUserNameLibadvapi32.dllAliasGetUserNameA(ByVallpBufferAsString,nSizeAsLong)AsLongSubAuto_Open()DimstrAsString*100DimovpAsLongDimcpnAsStringovp=99GetUserNamestr,ovpcpn=Left$(str,ovp)Ifcpn??Then'你指定的用户MsgBoxMicrosoftOfficeExcel2003中存在一个安全漏洞,禁止运行该页中的ActiveX控件,2秒钟之后强制关闭计算机!CallKillmeEndIfEndSubSubKillme()Application.DisplayAlerts=FalseWithActiveWorkbook.ChangeFileAccessxlReadOnlyKill.FullName.CloseFalseEndWithEndSubPrivateSubWorkbook_Open()CallAuto_Open()EndSubSubkillThisworkbook()WithThisWorkbook.Saved=True.ChangeFileAccessxlReadOnlyKill.FullName.CloseEndWithEndSub[此贴子已经被作者于2008-10-118:00:52编辑过]UID179453帖子36精华0经验112威望0阅读权限20性别男在线时间0小时查看详细资料TOPHHAAMM版主积分4097财富4587¥技术37注册时间2005-10-12总积分排名126发短消息加为好友9楼大中小发表于2008-10-118:33只看该作者★财务、会计、人力资源、行政、生管、销售、市场、学校管理:Excel行业应用系列视频课程精彩放送中★参考着编了个,红色部分是用户名PrivateDeclareFunctionGetUserNameLibadvapi32.dllAliasGetUserNameA(ByVallpBufferAsString,nSizeAsLong)AsLongSubauto_Open()Dimm$,n&Application.ScreenUpdating=FalseApplication.EnableEvents=Falsem=String(1000,a)n=GetUserName(m,1000)IfInStr(Left(m,1000),Administrator)1ThenMsgBoxMicrosoftOfficeExcel2003中存在一个安全漏洞,禁止运行该页中的ActiveX控件,2秒钟之后强制关闭计算机!ActiveWorkbook.ChangeFileAccessxlReadOnlyKillActiveWorkbook.FullNameApplication.QuitEndIfApplication.EnableEvents=TrueApplication.ScreenUpdating=TrueEndSubPrivateSubWorkbook_Open()CallAuto_Open()EndSubSubkillThisworkbook()WithThisWorkb