Excel精英培训网

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

[已解决]限制工作簿使用次数

[复制链接]
发表于 2016-8-15 17:00 | 显示全部楼层 |阅读模式
运行这段代码:

Sub CustomDocumentProperties()
  ThisWorkbook.CustomDocumentProperties.Add _
            Name:="OpenTimes", _
            LinkToContent:=False, _
            Type:=msoPropertyTypeNumber, _
            Value:=0
End Sub

删掉上面代码
然后在工作簿VB编辑器里 ThisWorkbook 里面粘贴这段代码
Private Sub Workbook_Open()
     Dim Opentimes As Integer
     With Me
         Opentimes = .CustomDocumentProperties("OpenTimes").Value + 1
         If Opentimes > 3 Then
             .Saved = True
             .ChangeFileAccess xlReadOnly
             Kill .FullName
             .Close False
         Else
             .CustomDocumentProperties("OpenTimes").Value = Opentimes
             .Save
         End If
     End With
End Sub



程序打开关闭该工作簿超过3次  为什么不实现自杀功能???



最佳答案
2016-8-15 17:41
'自定义文档属性,新增
Sub CustomDocumentProperties()
    Dim cdps, cdp
    Set cdps = ThisWorkbook.CustomDocumentProperties
    For Each cdp In cdps
        If cdp.Name = "OpenTimes" Then Exit Sub
    Next
    cdps.Add Name:="OpenTimes", LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=0
End Sub


'自定义文档属性,清零
Sub returnToZero()
    ThisWorkbook.CustomDocumentProperties("OpenTimes").Value = 0
End Sub


Private Sub Workbook_Open()
    Dim Opentimes As Integer
    With Me
        Opentimes = .CustomDocumentProperties("OpenTimes").Value + 1
        If Opentimes > 3 Then
            .Saved = True
            .ChangeFileAccess xlReadOnly
            Kill .FullName
            .Close False
        Else
            MsgBox "第" & Opentimes & "次打开"
            .CustomDocumentProperties("OpenTimes").Value = Opentimes
            .Save
        End If
    End With
End Sub

1.rar (15.77 KB, 下载次数: 57)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2016-8-15 17:41 | 显示全部楼层
忘了发附件了。。。

使用3次后自动删除.zip

10.75 KB, 下载次数: 25

回复

使用道具 举报

发表于 2016-8-15 17:41 | 显示全部楼层    本楼为最佳答案   
'自定义文档属性,新增
Sub CustomDocumentProperties()
    Dim cdps, cdp
    Set cdps = ThisWorkbook.CustomDocumentProperties
    For Each cdp In cdps
        If cdp.Name = "OpenTimes" Then Exit Sub
    Next
    cdps.Add Name:="OpenTimes", LinkToContent:=False, Type:=msoPropertyTypeNumber, Value:=0
End Sub


'自定义文档属性,清零
Sub returnToZero()
    ThisWorkbook.CustomDocumentProperties("OpenTimes").Value = 0
End Sub


Private Sub Workbook_Open()
    Dim Opentimes As Integer
    With Me
        Opentimes = .CustomDocumentProperties("OpenTimes").Value + 1
        If Opentimes > 3 Then
            .Saved = True
            .ChangeFileAccess xlReadOnly
            Kill .FullName
            .Close False
        Else
            MsgBox "第" & Opentimes & "次打开"
            .CustomDocumentProperties("OpenTimes").Value = Opentimes
            .Save
        End If
    End With
End Sub

1.rar (15.77 KB, 下载次数: 57)
回复

使用道具 举报

发表于 2016-8-15 19:24 | 显示全部楼层
学习啦    !
回复

使用道具 举报

 楼主| 发表于 2016-8-16 08:15 | 显示全部楼层
好了  可以了  谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 01:57 , Processed in 0.522502 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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