Excel精英培训网

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

[已解决]VBA80集之19集的EXCEL程序事件自己写的不对!!!

[复制链接]
发表于 2013-5-4 17:39 | 显示全部楼层 |阅读模式
看了兰老师的V80中的第19集的EXCEL事件后,自己写了个,但是运行的不对,请各位大虾指导!!
就是打开EXCEL文件后,虽然输入的密码错误(INPUTBOX的值为123),但是还能打开EXCEL文件, 虽然运行了MsgBox "对不起,你没有使作本机EXCEL程序权限",但是后面的  Wb.Close没有运行哇。。
请高手指点。
先谢了。
新建文件夹.rar (9.02 KB, 下载次数: 6)
发表于 2013-5-4 17:48 | 显示全部楼层
关于权限设置问题,不建议这样使用加载宏的方式,

一般都是把代码直接写到需要应用的文件中,

你这样做的加载宏,每打开一个Excel文件都会运行一下该文件,

关于你的错误,你可以测试一下

  1. MsgBox "对不起,你不能登陆 " & Wb.Name & " 文件!!"
  2. EXC.Quit
复制代码
Wb.Name   用于返回工作薄的名称,看看能不能正确返回
EXC.Quit  用于退出Excel程序
回复

使用道具 举报

发表于 2013-5-4 17:49 | 显示全部楼层
你要对WB.NAME做下过滤,第一次弹出来的,是打开.XLA时的对话框,如果你密码错了,加载宏就关闭了。
回复

使用道具 举报

发表于 2013-5-4 17:52 | 显示全部楼层
  1. A = Application.InputBox("请输入密码", Wb.Name)
复制代码
对话框那行,你改成上面这样,看对话框的标题,就会明白了。
回复

使用道具 举报

发表于 2013-5-4 17:53 | 显示全部楼层    本楼为最佳答案   
  1. Private Sub EXC_WorkbookOpen(ByVal Wb As Workbook)
  2.     Dim A
  3.     If Wb.Name = ThisWorkbook.Name Then Exit Sub
  4.     A = Application.InputBox("请输入密码", Wb.Name)
  5.     If A = 123 Then
  6.         MsgBox "欢迎使用本机EXCEL程序"
  7.     Else
  8.         MsgBox "对不起,你没有使作本机EXCEL程序权限"
  9.         Wb.Close False
  10.     End If
  11. End Sub
复制代码
第一次打开EXCEL时,第一个打开的文档会要提示两次输入密码。再打开就正常了。
回复

使用道具 举报

 楼主| 发表于 2013-5-4 18:24 | 显示全部楼层
hwc2ycy 发表于 2013-5-4 17:53
第一次打开EXCEL时,第一个打开的文档会要提示两次输入密码。再打开就正常了。

谢谢老师,明白了。
我再捉摸下。。。
再次感谢。。。

回复

使用道具 举报

 楼主| 发表于 2013-5-4 18:35 | 显示全部楼层
hwc2ycy 发表于 2013-5-4 17:53
第一次打开EXCEL时,第一个打开的文档会要提示两次输入密码。再打开就正常了。

谢谢老师,你这个INPUTBOX中的WB.NAME,让我明白了为什么代码为什么出错了。
不加第一个判断的话,那么这个.XLA的文件就不会运行了。。。
代码看着明白,就是一些细节没有注意到。
谢了。。
{:35:}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 13:57 , Processed in 0.303941 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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