ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1131|回复: 2

[求助] 《别怕,VBA其实很简单》教材中的登录窗体案例

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-13 11:00 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
《别怕,VBA其实很简单》教材中的登录窗体案例名称管理如图片附件:
代码和教材中一样,但输入名称管理器储存的用户名user时,程序总是过不去:
Private Sub cmdok_Click()
    Application.ScreenUpdating = False
    Static i As Integer
    Dim a As String, b As String
    a = Right(Names("username").RefersTo, Len(Names("username").RefersTo) - 1)
    b = Right(Names("userword").RefersTo, Len(Names("userword").RefersTo) - 1)


    If CStr(user.Value) = a And _
        CStr(password.Value) = b Then
        Unload Me
        Application.Visible = True
    Else
        i = i + 1
        If i = 3 Then
            MsgBox "你无权打开工作簿!", vbExclamation, "提示"
            ThisWorkbook.Close savechanges:=False
        Else
            MsgBox "输入错误,你还有" & (3 - i) & "次输入机会!", vbExclamation, "提示"
            user.Value = ""
            password.Value = ""
        End If
    End If
    Application.ScreenUpdating = True

End Sub





名称管理器

名称管理器

TA的精华主题

TA的得分主题

发表于 2018-7-13 13:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 ivccav 于 2018-7-13 13:12 编辑

书上的代码肯定是错误的。Name中数字和字符串的存储方式不同。
最正确的方法是在存储和修改userword时,在前面加一个字母,这样就能确定是按字符串存储。取出时少要一位即可。


对于数字:
names.Add "userword","123456",0
存储方式为:=123456

对于字符串:
names.Add "username","user",0
存储方式为:="user"


======================
正确用法:因为无法确定别人输入的是数字还是字符串,
新增或修改userword时加一个字母:names.Add "userword","A123456",0
取出时用:Mid(Names("userword"), 4, Len(Names("userword")) - 4)即可。


TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-13 14:33 | 显示全部楼层
感谢ivccav指导!
祝您工作顺利!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-9 00:18 , Processed in 0.018836 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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