| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2255 人关注过本帖
标题:错误三次则结束程序的问题
只看楼主 加入收藏
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
结帖率:91.22%
收藏
已结贴  问题点数:10 回复次数:10 
错误三次则结束程序的问题
我想做的这个案例要求:利用代码打开"生产表.xlsx",如果输入密码错误时继续弹出输入框,
连续错误三次则关闭程序。
正确密码是789.
我在EXCEL VBA里正常运行,可是VB里不行。
代码如下:
Option Explicit

Dim XlApp As New Excel.Application    '使用 Excel 对象删除指定行
Dim XlBook As New Excel.Workbook
Dim XlSheet As New Excel.Worksheet

Private Sub Command1_Click()
On Error Resume Next
Dim i As Byte, PsdStr As String
Do
    Err.Clear
    i = i + 1
    PsdStr = XlApp.InputBox("请输入密码:" & Chr(10) & "您还有" _
        & 4 - i & "次机会", "第" & i & "次输入密码", , , , , , 3)
    XlApp.Workbooks.Open XlApp.ThisWorkbook.Path & "\生产表.xlsx", , , , PsdStr
    If i = 3 Then
        MsgBox "对不起,你已错误三次,程序即将关闭"
        Exit Sub
    Else
        If Err.Number = 0 Then Exit Sub
    End If
Loop
XlApp.StatusBar = "打开工作簿成功..."

End Sub

Private Sub Form_Load()
Set XlApp = CreateObject("Excel.Application") '创建EXCEL对象
XlApp.Visible = True
XlApp.Caption = "应用程序调用 Microsoft Excel"

Set XlBook = XlApp.Workbooks.Open(App.Path & "\7-29 防错处理二.xlsm")
Set XlSheet = XlBook.Worksheets(1)
End Sub
我尝试着改了一下代码,上面是我改过的,还是不行,打不开那个生产表。
请问高手,哪里有问题呀?谢谢!
付VBA代码:
Sub 打开工作簿()
    On Error Resume Next  '错误时执行下一步
    Dim i As Byte, PsdStr As String
    Do  '启动循环
        Err.Clear    '清除错误,相当于将Err.Number属性值归零,其作用是避免上一次的错误干扰当前操作的判断结果
        i = i + 1    '累加变量,记录输入密码的次数
        '弹出输入框让用户输入打开工作簿的密码,同时显示允许输入几次
        PsdStr = Application.InputBox("请输入密码:" & Chr(10) & "您还有" & 4 - i & "次机会", "第" & i & "次输入密码", , , , , , 3)
        '利用前面输入的密码去打开代码所在工作簿同路径下的“生产表.xlsx”
        Workbooks.Open ThisWorkbook.Path & "\生产表.xlsx", , , , PsdStr
        If i = 3 Then '如果已经错误三次
            MsgBox "对不起,你已错误三次,程序即将关闭" '则提示用户
            Exit Sub '然后关闭程序
        Else   '否则
           '如果程序没有错误就结束循环(密码正确的情况下才会无错误),如果有错误则会返回Do语句之后,重新输入密码
            If Err.Number = 0 Then Exit Do
        End If
    Loop
    Application.StatusBar = "打开工作簿成功..." '在状态栏显示打开成功
End Sub
搜索更多相关主题的帖子: 错误 打开 输入密码 Excel Sub 
2019-05-09 15:26
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

这儿提示失败。
2019-05-09 17:36
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
收藏
得分:3 
回复 2楼 chen3bing
XlApp.Workbooks.Open XlApp.ThisWorkbook.Path & "\生产表.xlsx", , , , PsdStr 改为 XlApp.Workbooks.Open App.Path & "\生产表.xlsx", , , , PsdStr

Set XlBook = XlApp.Workbooks.Open(App.Path & "\7-29 防错处理二.xlsm")这句注释不要
Set XlSheet = XlBook.Worksheets(1)这句注释不要


[此贴子已经被作者于2019-5-9 22:03编辑过]


不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-05-09 22:00
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
收藏
得分:0 
回复 3楼 wufuzhang
谢谢!还是打不开,貌似If Err.Number = 0 Then Exit Sub这一句有错误。
图片附件: 游客没有浏览图片的权限,请 登录注册
2019-05-10 08:05
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
收藏
得分:3 
回复 4楼 chen3bing
我猜问题应该出在你的“生产表.xlsx”密码设置上面,我自己建一个Excel,然后设置安全密码789,
运行程序,点击Command1按钮,输入密码,就可以打开表格。
我不知道你的表格是怎么设置密码的。

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-05-10 09:11
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
收藏
得分:0 
回复 5楼 wufuzhang
谢谢!那个生产表是一本书里的例子,EXCEL VBA程序开发自学宝典。
我也自己建立了一个EXCEL 2010的工作簿,设置密码,还是打不开。
设置密码的方法,百度上搜的。连接如下:
https://jingyan.baidu.com/article/455a99508975c3a1662778f7.html
你是怎么设置密码的呀?
2019-05-10 09:33
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
收藏
得分:0 
回复 5楼 wufuzhang
你的程序跟我的是一样的吗?
2019-05-10 09:36
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
收藏
得分:3 
回复 7楼 chen3bing
我就是复制你的代码,然后修改的。
密码设置见下图:
图片附件: 游客没有浏览图片的权限,请 登录注册

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-05-10 09:41
chen3bing
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:507
专家分:104
注 册:2008-11-12
收藏
得分:0 
回复 8楼 wufuzhang
你的office是哪个版本的?我怎么找不到你那个安全什么的菜单?
2019-05-10 09:57
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
收藏
得分:1 
回复 9楼 chen3bing
我用的是WPS2019版。


给你找了一个Excel 07的

图片附件: 游客没有浏览图片的权限,请 登录注册

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-05-10 10:14
快速回复:错误三次则结束程序的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.065468 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved