Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 兰色幻想

[习题] workbook_open事件练习:限制excel文件使用次数

  [复制链接]
发表于 2008-1-19 23:42 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>zgwei050</i>在2008-1-19 22:25:00的发言:</b><br/><p>看<strong><font face="Verdana" color="#61b713">至尊宝</font></strong>的思路就是灵![em17][em17][em17]</p><p>x = Sheet1.Range("a1")<br/>Range("a1") = x + 1</p><p>两句合成一句行吗?</p><p>Sheet1.Range("a1")= Sheet1.Range("a1")&nbsp;+ 1</p></div><p>合成一句也行。range("a1")前面有的忘记加表名字了。是个大漏洞</p>
回复

使用道具 举报

发表于 2008-1-20 00:05 | 显示全部楼层
回复

使用道具 举报

发表于 2008-1-20 01:30 | 显示全部楼层
回复

使用道具 举报

发表于 2008-1-20 03:23 | 显示全部楼层

<p>ublic Sub Workbook_Open()<br/>Sheets(1).Cells(1, 1) = Sheets(1).Cells(1, 1) + 1<br/>If Sheets(1).Cells(1, 1) &gt; 3 Then<br/>MsgBox "您已经超过了使用次数!"<br/>ActiveWorkbook.Close (False)<br/>End If<br/>End Sub</p><p>&lt;&gt;</p>
回复

使用道具 举报

发表于 2008-1-20 08:24 | 显示全部楼层

<p>受楼上几位的思路启发,但总感到在正常试用期间特定单元格(比如A1)中出现数字不雅,搞了一个工作薄的save和open结合的事件来控制限定试用次数。如限定5次(但保存时一定要点击“是”,对“否”不起作用,如何解决?)</p><p>ublic k As Integer<br/>rivate Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)<br/>&nbsp;&nbsp;&nbsp; Sheet1.Range("a1") = k + 1<br/>End Sub</p><p>rivate Sub Workbook_Open()<br/>&nbsp;&nbsp;&nbsp; k = Sheet1.Range("a1")<br/>If k &gt;= 5 Then<br/>&nbsp;&nbsp;&nbsp; MsgBox "超过" &amp; k &amp; "次的试用次数了"<br/>&nbsp;&nbsp;&nbsp; ThisWorkbook.Close savechanges:=True<br/>End If<br/>&nbsp;&nbsp;&nbsp; Sheet1.Range("a1") = "" <font color="#1ae61a">'规定次数内试用,A1单元格中不要显示数字<br/></font>End Sub</p>
回复

使用道具 举报

发表于 2008-1-20 09:43 | 显示全部楼层

<p>参考前面几位的程序,在实用性方面作了一些补充。还有就是我前面提到的问题,若打开次数超过了限定的次数后,这个工作簿不就“废”了?!还有没有再启用这个工作簿的办法?</p><p>rivate Sub Workbook_Open()<br/>Dim x<br/>Application.ScreenUpdating = False <font color="#55aa77">'←关闭屏幕刷新,以免瞬间显示IV1的位置!</font><br/>&nbsp; x = Sheet1.Range("IV1")&nbsp;'<font color="#66997b">←选IV1是因很少会用到这里,以免在A1容易失去记录的次数!</font><br/>&nbsp; Sheet1.Range("IV1") = x + 1<br/>&nbsp; ThisWorkbook.Save<br/>&nbsp; Sheet1.Range("A1").Select&nbsp;<font color="#5ea25e">’←工作表打开后仍显示在A1的位置,以免停在IV1的位置引人生疑!</font><br/>&nbsp;&nbsp;&nbsp; If Sheet1.Range("IV1") &gt; 10 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox "超过10次的试用次数了"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisWorkbook.Close savechanges:=True<br/>&nbsp;&nbsp;&nbsp; End If<br/>MsgBox "你还可以打开" &amp; 9 - x &amp; "次此工作簿!" <font color="#55aa66">'←实际使用时此句不用!</font><br/>Application.ScreenUpdating = True<br/>End Sub</p>
回复

使用道具 举报

发表于 2008-1-20 12:37 | 显示全部楼层

大家都想想 有没有不跟单元格关联的办法?
回复

使用道具 举报

发表于 2008-1-20 14:04 | 显示全部楼层

<p>Dim mm</p><p>rivate Sub Workbook_BeforeClose(Cancel As Boolean)<br/>ActiveWorkbook.Sheets("sheet1").[a1] = mm<br/>&nbsp;ActiveWorkbook.Close savechanges:=True<br/>End Sub</p><p>rivate Sub Workbook_Open()<br/>mm = ActiveWorkbook.Sheets("sheet1").[a1] + 1<br/>If mm &gt; 2 Then<br/>&nbsp;&nbsp;&nbsp; MsgBox "你超过了使用次数"<br/>&nbsp;&nbsp;&nbsp; ActiveWorkbook.Close savechanges:=False<br/>End If<br/>End Sub<br/></p>
回复

使用道具 举报

发表于 2008-1-20 14:08 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>laosanjie</i>在2008-1-20 9:43:00的发言:</b><br/><p>参考懊婕肝坏某绦颍?谑涤眯苑矫孀髁艘恍┎钩洹;褂芯褪俏仪懊嫣岬降奈侍猓?舸蚩?问???讼薅ǖ拇问?螅?飧龉ぷ鞑静痪汀胺稀绷耍浚』褂忻挥性倨粲谜飧龉ぷ鞑镜陌旆ǎ?lt;/p&gt; </p><p>rivate Sub Workbook_Open()<br/>Dim x<br/>Application.ScreenUpdating = False <font color="#55aa77">'←关闭屏幕刷新,以免瞬间显示IV1的位置!</font><br/>&nbsp; x = Sheet1.Range("IV1")&nbsp;'<font color="#66997b">←选IV1是因很少会用到这里,以免在A1容易失去记录的次数!</font><br/>&nbsp; Sheet1.Range("IV1") = x + 1<br/>&nbsp; ThisWorkbook.Save<br/>&nbsp; Sheet1.Range("A1").Select&nbsp;<font color="#5ea25e">’←工作表打开后仍显示在A1的位置,以免停在IV1的位置引人生疑!</font><br/>&nbsp;&nbsp;&nbsp; If Sheet1.Range("IV1") &gt; 10 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MsgBox "超过10次的试用次数了"<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThisWorkbook.Close savechanges:=True<br/>&nbsp;&nbsp;&nbsp; End If<br/>MsgBox "你还可以打开" &amp; 9 - x &amp; "次此工作簿!" <font color="#55aa66">'←实际使用时此句不用!</font><br/>Application.ScreenUpdating = True<br/>End Sub</p></div><p>打开工作薄时,禁用宏,打开后再清除Sheet1中IV1单元格中的值就又可以用了。</p>[em02]
回复

使用道具 举报

发表于 2008-1-20 14:13 | 显示全部楼层

<p>学习........</p>
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 12:47 , Processed in 1.267649 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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