Excel 如何将此函数从InputBox更改为UserForm?
我正在尝试更改Testing()函数,以使用UserForm而不是应用程序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")
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
的返回值,以查看它是否成功。