前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设置变化的密码

设置变化的密码

作者头像
fanjy
发布2024-05-03 13:48:39
720
发布2024-05-03 13:48:39
举报
文章被收录于专栏:完美Excel完美Excel

标签:Excel技巧,VBA

本文介绍在Excel中更改密码的技巧,来自www.wimgielis.com。每次用户要求的密码都是(或可以是)不同的(只有用户知道需要什么类型的密码)。注意,这里讨论的密码是Excel文件中你自己的自定义密码,而不是可以用来阻止(写入)对文件的访问的密码。

诀窍是使用当前时间作为密码:如果现在是晚上19:42,那么密码将是1942。许多人在电脑屏幕的右下角都有一个时钟,此时只需将看一下这个时钟就知道所需的密码。

VBA代码如下:

代码语言:javascript
复制
'根据当前时间,以"随机"方式向用户询问密码
Sub ChangingPassword()
 Dim dtNow As Date
 Dim sPassword_Required As String
 Dim sPassword_Given As String
 dtNow = Now
 sPassword_Required = Format(dtNow, "hhmm")
 sPassword_Given = InputBox("请输入密码:")
 If sPassword_Given = sPassword_Required Then
   MsgBox "密码正确"
 Else
   MsgBox "不正确的密码"
 End If
End Sub

在代码中,使用函数Format和Now以文本形式返回当前时间(声明为String的变量),这是必需的密码。用户提供的密码也存储在一个变量中。最后,做一个非常简单的检查,看看两个密码是否匹配。你可以修改代码,让密码包括当前日期或月份,甚至可以包括秒数(并根据需要调整密码匹配测试)。

如果使用分钟级别,则过程总是有可能在一分钟停止之前启动,当用户开始键入密码时,新的一分钟就开始了。为了考虑到这种可能性,可能需要留出5秒钟的时间:

代码语言:javascript
复制
'根据当前时间,以"随机"方式向用户询问密码,并留出5秒钟的时间
Sub ChangingPassword_AllowTimeInterval()
 Dim dtNow As Date
 Dim sPassword_Required As String
 Dim sPassword_Given As String
 dtNow = Now
 sPassword_Required = Format(dtNow, "hhmm")
 sPassword_Given = InputBox("请输入密码:")
 If (sPassword_Given = sPassword_Required) Or _
   ((sPassword_Given = Format(DateAdd("n", 1, dtNow), "hhmm")) And (Second(Now) <= 5)) Then
   MsgBox "密码正确"
 Else
   MsgBox "不正确的密码"
 End If
End Sub

比较两段代码,唯一的变化是在扩展IF语句中:现在只要分钟数正确就足够了,或者,如果在下一分钟的前5秒内,可以偏移1分钟。DateAdd是一种将现有日期/时间变量加1分钟的方便方法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档