Excel精英培训网

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

[已解决]求老师帮忙

  [复制链接]
发表于 2011-12-7 19:41 | 显示全部楼层 |阅读模式
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim sh As Worksheet
Sheet1.Visible = True
For Each sh In Me.Worksheets
If UCase(sh.Name) <> "SHEET1" Then sh.Visible = xlSheetVeryHidden
Next sh
Me.Save
End Sub
Private Sub Workbook_Open()
Dim sh As Worksheet
For Each sh In Me.Worksheets
If UCase(sh.Name) <> "SHEET1" Then sh.Visible = True
Next sh
Sheet1.Visible = xlSheetVeryHidden
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If Range("a1") <> 1 Then
        Cancel = True
        MsgBox "对不起,要求没填好,你不能打印或保存!"
    End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If Range("a1") <> 1 Then
        Cancel = True
        MsgBox "对不起,要求没填好,你不能打印或保存!"
    End If
End Sub

Private Sub Workbook_Open()
    Dim counter As Long, term As Long, chk
    chk = GetSetting("hhh", "budget", "使用次数", "")
    If chk = "" Then
        term = 5
        MsgBox "本工作簿只能使用" & term & "次" & vbCrLf & "超过次数将自动销毁!", vbExclamation
        SaveSetting "hhh", "budget", "使用次数", term
    Else
        counter = Val(chk) - 1
        MsgBox "你还能使用" & counter & "次,请及时注册!", vbExclamation
        SaveSetting "hhh", "budget", "使用次数", counter
        If counter <= 0 Then
            DeleteSetting "hhh", "budget", "使用次数"
            killme
        End If
    End If
End Sub
Public Sub killme()
    Application.DisplayAlerts = False
    ActiveWorkbook.ChangeFileAccess xlReadOnly
    Kill ActiveWorkbook.FullName
    ThisWorkbook.Close False
End Sub

上面是老师帮我写的代码,我想加上下面那段代码,但是提示二次定义,老师们帮我下
最佳答案
2011-12-10 07:50
明白啦,是你原来运行其他文件的宏留下来的记录,帮你改一下吧:
(, 下载次数: 13)
发表于 2011-12-7 19:42 | 显示全部楼层
二义性,就是两个定义了打开事件,系统不知道执行哪一个。
把两个OPEN事件的代码写一起吧。
回复

使用道具 举报

发表于 2011-12-7 19:44 | 显示全部楼层
回复

使用道具 举报

发表于 2011-12-7 19:57 | 显示全部楼层
顶一个,别忘了向学长们学习
回复

使用道具 举报

 楼主| 发表于 2011-12-7 20:12 | 显示全部楼层
liuguansky 发表于 2011-12-7 19:42
二义性,就是两个定义了打开事件,系统不知道执行哪一个。
把两个OPEN事件的代码写一起吧。

但是我不会弄啊,求老师们帮忙

回复

使用道具 举报

 楼主| 发表于 2011-12-7 20:40 | 显示全部楼层
好像可以了,我直接放到上面的代码里了
回复

使用道具 举报

发表于 2011-12-7 20:44 | 显示全部楼层
你凑合了2 个Private Sub Workbook_Open事件,当然报“二义性!
若2段代码没有相互干涉,放在一起即可。
回复

使用道具 举报

 楼主| 发表于 2011-12-7 20:45 | 显示全部楼层
好像不行啊,那为老师帮我下啊,谢谢了
回复

使用道具 举报

发表于 2011-12-7 21:42 | 显示全部楼层
把后两个放在thisworkbook里就解决问题了。
Private Sub Workbook_Open()
    Dim counter As Long, term As Long, chk
    chk = GetSetting("hhh", "budget", "使用次数", "")
    If chk = "" Then
        term = 5
        MsgBox "本工作簿只能使用" & term & "次" & vbCrLf & "超过次数将自动销毁!", vbExclamation
        SaveSetting "hhh", "budget", "使用次数", term
    Else
        counter = Val(chk) - 1
        MsgBox "你还能使用" & counter & "次,请及时注册!", vbExclamation
        SaveSetting "hhh", "budget", "使用次数", counter
        If counter <= 0 Then
            DeleteSetting "hhh", "budget", "使用次数"
            killme
        End If
    End If
End Sub
Public Sub killme()
    Application.DisplayAlerts = False
    ActiveWorkbook.ChangeFileAccess xlReadOnly
    Kill ActiveWorkbook.FullName
    ThisWorkbook.Close False
End Sub
回复

使用道具 举报

发表于 2011-12-8 08:54 | 显示全部楼层
还是我来帮你把:
启用宏才可打开工作页.rar (8.42 KB, 下载次数: 21)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 04:52 , Processed in 0.342913 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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