Excel 如何将此函数从InputBox更改为UserForm?

Excel 如何将此函数从InputBox更改为UserForm?,excel,vba,Excel,Vba,我正在尝试更改Testing()函数,以使用UserForm而不是应用程序inputbox。我已经使用用户名和密码输入以及“登录”按钮创建了UserForm,但是我不确定表单上的登录按钮的代码应该是什么样子 我已经包括了它引用的登录函数和相关声明 Public Sub Testing() Dim User As String Dim Pass As String User = Application.InputBox("Enter Your Username")

我正在尝试更改Testing()函数,以使用UserForm而不是应用程序inputbox。我已经使用用户名和密码输入以及“登录”按钮创建了UserForm,但是我不确定表单上的登录按钮的代码应该是什么样子

我已经包括了它引用的登录函数和相关声明

Public Sub Testing()
    Dim User As String
    Dim Pass As String
    User = Application.InputBox("Enter Your Username")
    Pass = Application.InputBox("Enter Your Password")
    Const AccountID = "Cerberus"
    Dim Cerberus As New Class_Cerberus
    Call Cerberus.Login(AccountID, User, Pass)

    Range("A1") = Cerberus.GUID

    Set Cerberus = Nothing

End Sub
Private Online_uuu作为布尔值
私有用户名作为字符串
私有密码作为字符串
私有帐户ID作为字符串
私有GUID作为字符串
私有GUID_时间戳作为日期
作为布尔值的公共函数登录(可选ByRef AccountID作为字符串,可选ByRef用户名作为字符串,可选ByRef密码作为字符串)
如果未联机,则“在继续之前验证连接”
如果未在线检查,则退出功能
如果结束
'如果此时提供了任何凭据,请存储它们以供以后使用,然后继续登录
如果不是IsMissing(AccountID),则AccountID\uId=AccountID
如果不是IsMissing(用户名),则用户名=用户名
如果不是IsMissing(Password),则Password=Password
如果不是(Len(GUID_u)=0或GUID_u时间戳<(Now()-TimeSerial(8,0,0)),则Login=True
Dim RawJSON As String:RawJSON=GetHTTP(基本URL&“?fct=login&accountid=“&accountid&”&username=“&username&&password=“&password&”&browserinfo=NULL&format=JSON”)
Dim JSON作为对象:Set JSON=JsonConverter.ParseJson(RawJSON)
Login=JSON(“状态”)=“确定”
GUID=JSON(“结果”)(1)(“GUID”)
GUID_Timestamp=GetDateTime(JSON(“结果”)(1)(“日期_活动”))
设置JSON=Nothing
端函数

因此您的登录按钮将是一个
命令按钮
,您可以从
工具箱中拖动它

您说您已经创建了用户/密码输入框,因此
CommandButton
代码类似于此

Public Sub Testing()
    Dim User As String
    Dim Pass As String
    User = TextBox1.Value 'Changed from Application.InputBox("Enter Your Username")
    Pass = TextBox2.Value
    Const AccountID = "Cerberus"
    Dim Cerberus As New Class_Cerberus
    Call Cerberus.Login(AccountID, User, Pass)

    Range("A1") = Cerberus.GUID

    Set Cerberus = Nothing

    Unload Me 'This closes the Userform, perhaps add a check If Login = True then Unload Me

End Sub
注意:您可以通过
PasswordChar=*
通过输入字段的属性隐藏PWD


因此,您的登录按钮将是一个
命令按钮
,您可以从
工具箱中拖动它

您说您已经创建了用户/密码输入框,因此
CommandButton
代码类似于此

Public Sub Testing()
    Dim User As String
    Dim Pass As String
    User = TextBox1.Value 'Changed from Application.InputBox("Enter Your Username")
    Pass = TextBox2.Value
    Const AccountID = "Cerberus"
    Dim Cerberus As New Class_Cerberus
    Call Cerberus.Login(AccountID, User, Pass)

    Range("A1") = Cerberus.GUID

    Set Cerberus = Nothing

    Unload Me 'This closes the Userform, perhaps add a check If Login = True then Unload Me

End Sub
注意:您可以通过
PasswordChar=*
通过输入字段的属性隐藏PWD


您的用户表单代码将基本相同,只是您将引用textbox控件而不是
InputBox
您可能还希望检查
Login
的返回值以查看是否成功。您的用户表单代码将基本相同,只是您将引用textbox控件除了
InputBox
之外,您可能还需要检查
Login
的返回值,以查看它是否成功。