gpt4 book ai didi

vba - 验证列表中的用户输入值

转载 作者:行者123 更新时间:2023-12-02 17:31:54 24 4
gpt4 key购买 nike

我对 VBA 非常陌生,非常感谢您的支持。

我正在编写一个简单的代码,要求用户输入“密码”。密码列表是用 VBA 硬编码的。如果用户输入的密码与 VBA 中硬编码的密码相匹配,那么它会将其放在单元格“B2”中,如果错误,则用户将收到密码错误的错误消息。

到目前为止我的代码是:

Sub Password()
Dim Password As String
Dim Msg As String
Dim List(Password1, Password2) As String
Msg = "please enter password"
Password = InputBox(Msg)
If Password <> List Then
MsgBox "Incorrect Password!"
ActiveSheet.Range("B2").Value = Password
End Sub

我不知道我哪里出错了?

非常感谢

最佳答案

我建议使用集合。这是创建集合并向其中添加项目的方法:

Dim pwList As New Collection
pwList.Add "TestPass1"
pwList.Add "TestPass2"

不幸的是,VBA 集合没有默认函数来检查字符串是否是其中的元素。此函数可用于检查集合是否包含字符串(只需将此函数粘贴到代码中的某处即可):

Public Function CollectionContains(col As Collection, val As String) As Boolean
Dim item As Variant

For Each item In col
If item = val Then
CollectionContains = True
Exit Function
End If
Next item

CollectionContains = False
End Function

现在,您的代码应如下所示:

Sub Pw()
Dim Password As String
Dim pwList As New Collection
pwList.Add "TestPass1"
pwList.Add "TestPass2"

Password = InputBox("please enter password")
If CollectionContains(pwList, Password) Then
ActiveSheet.Range("B2").Value = Password
Else
MsgBox "Incorrect Password!"
End If
End Sub

关于vba - 验证列表中的用户输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50641304/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com