ad

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_3.11 限制文档使用

网友投稿 154 2023-11-07

【摘要】 本书摘自《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》一书中第3章,第11节,陈锡卢、李应钦著。

3.11 限制文档使用

上一节认识了 Workbook.BuiltinDocumentProperties 属性作用及如何获取其各项对应的文档 信息内容,现在就运用这个知识点结合Workbook_BeforeClose事件的特性进行关闭前的检查 提示,如代码3-24所示。

代码3-24 限制文档使用日期(期限)

《Excel VBA跟卢子一起学早做完,不加班(实战进阶版)》_3.11 限制文档使用

001/Private Sub Workbook_BeforeClose(Cancel As Boolean)

002| Dim C_date As Date,O_date As Date,Days As Integer

003| C_date =ActiveWorkbook.BuiltinDocumentProperties(11)

004| O_date=#12/31/2018#

005| Days=DateDiff("d",C_date,O_date)

006| Select Case Days

0071 Case 30

008| MsgBox"该文档还可使用30天!",vbExclamation

009| Case 15

010| MsgBox“该文档还可使用15天!”,vbExclamation

011| Case 1

012[ MsgBox" 该文档还可使用1天!",vbExclamation

013 End Select

014| If Days =0 Then

015| MsgBox” 今天是文档的最后使用日期,关闭的时候文档将自动消失。 ”,vbExclamation

016| With Application

0171 .EnableCancelKey =xIDisabled

018| .DisplayAlerts =False

019| Active Workbook.ChangeFileAccess xIReadOnly

020| ActiveWorkbook.Close False

021| Kill ActiveWorkbook.FullName

0221 .EnableCancelKey =xlInterrupt

023| .DisplayAlerts =True

024| End With

025| End If

026|End Sub

代码3-24示例过程进行了如下设置。

(1)首先定义了3个日期用的变量——C_date 变量的赋值通过获取激活工作簿的文档信 息中的创建日期;O_date 变量则直接通过赋值为指定的日期;Days 变量则通过DateDiff 函数 计算日期变量间的天数差。

(2)通过Select Case语句根据 Days 变量的天数提示相应信息;直到 Days 变量的天数为 0时,满足了If语句的条件,立即执行If语句里的中间语句。

( 3 ) 通 过Msgbox 函数提示工作簿的使用期限及操作,然后通过 EnableCancelKey 属 性赋值为False 取消中断程序进入调试模式,并关闭相关的提示窗口; ActiveWorkbook. ChangeFileAccess 语句则是将工作簿设置为只读权限并关闭工作簿。

(4)在关闭工作簿的同时通过Kil 语句抹杀刚才关闭的工作簿,并将 EnableCancelKey 和DisplayAlerts 属性赋值为 True。

无言:代码3-24示例过程中使用Kill语句在关闭后删除了刚才激活的工作簿,先来看下它 的语法及作用。

从磁盘中删除文件

Kill pathname

Kill 语句中只存pathname 参数:该参数用于指定要删除的完整文件名的字符串表达式。

pathname 可以包含目录或文件夹,以及驱动器。在 MicrosoftWindows 中,Kill 支持多字

符*和单字符?通配符来指定多重文件。然而在Macintosh 中,这些字符作为合法文件名字符 使用,不能作为通配符指定多个文件。

无言:要删除的文件必需为未使用状态,这是使用Kil语句必需要注意的地方;要删除同 一路径下的某类文件或者文件名中存在模糊字符时,也可以使用Kill删除。

Kill "*'

Kill "X:X1005 章及案例\Kil 语句\8*5.bxt'

Kill "X:X1005 章及案例\Kill语句\*.txt"

无言:如果将*改为?,则代表某个字符,和Like函数相似。

皮蛋:不错啊!对了,删除后的文件能不能通过回收站找回来呢?

无言:这就不行了,通过Kill语句删除的文件是无法回到回收站的,所以使用的时候要特 别小心。

因 为Kil 无法删除文件夹,所以如果要删除文件夹的话需要通过RmDir 语句才能将文件 夹内未含有任何其他文件夹或目等状态下的文件夹删除,其语法如下。

删除一个存在的目录或文件夹

RmDir path

RmDir 语句和Kill 语句一样,都只有一个参数,path 参数用来指定要删除的目录或文件 夹,path 可以包含驱动器。如果没有指定驱动器,则 RmDir 会在当前驱动器上删除目录或文 件夹。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《Python学习笔记 从入门到实战》_更了解Python的途径之一_2.3.3 Python中的编码
下一篇:《Excel VBA+SQL数据管理与应用模板开发》_工作效率UP!_7.5.9 查询付款信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×