Vba Microsoft Excel宏循环。需要重复的密码生成电子表格

Vba Microsoft Excel宏循环。需要重复的密码生成电子表格,vba,loops,excel,Vba,Loops,Excel,我创建了一个简单的密码生成器电子表格,当打开该电子表格时,会提示用户在文本输入框中输入一个5位数字,然后在一系列公式/命令中使用该数字来创建密码。然后,该密码将显示在输出消息框中。电子表格以“锁定”开始,自动解锁,提示输入数字,显示密码,然后再次锁定工作表。完成此操作后,无法再次使用密码生成器宏。我当前的宏如下所示: 专用子自动打开() 端接头 我需要的是,输入数字的文本输入框在显示密码后重新出现,以便可以多次使用此文件,而无需关闭并重新打开它。有人能帮忙吗?这是一个非常简单的方法。这里的问题是

我创建了一个简单的密码生成器电子表格,当打开该电子表格时,会提示用户在文本输入框中输入一个5位数字,然后在一系列公式/命令中使用该数字来创建密码。然后,该密码将显示在输出消息框中。电子表格以“锁定”开始,自动解锁,提示输入数字,显示密码,然后再次锁定工作表。完成此操作后,无法再次使用密码生成器宏。我当前的宏如下所示:

专用子自动打开()

端接头


我需要的是,输入数字的文本输入框在显示密码后重新出现,以便可以多次使用此文件,而无需关闭并重新打开它。有人能帮忙吗?

这是一个非常简单的方法。这里的问题是,我不确定您使用“生成器”的目的是什么,但每次重新输入时,数据都会丢失。这将循环使用任意数量的密码,并为它们提供退出选项。(如果密码无效,也会退出)

子密码()
将PWNum设置为长
PWNum=10'设置为要“计算”的密码数
ActiveSheet.Unprotect(“密码”)
对于i=1到PWNum
范围(“R1”)。值=输入框(“请输入您的号码,输入0退出”)
如果范围(“R1”)=0或Len(范围(“R1”).值)5,则“如果输入0或不是5位,则退出Sub”
MsgBox“无效密码。”
出口接头
ElseIf范围(“R1”)>0然后
MsgBox“您的密码是:”&范围(“R2”)。值
如果结束
接下来我
ActiveSheet.Protect(“密码”)
端接头

您仍然可以从“宏”菜单调用“自动打开”宏。你不能吗?如果不希望宏名称显示“Auto_Open”,则需要对代码的位置以及子例程和事件处理程序的使用进行一些更改。此外,您提到了“循环”,但在您的问题中没有任何地方您真的描述了您希望如何循环,以及什么将终止循环?为什么不将宏指定给按钮,而不是
自动打开
?这样,只需按下按钮即可再次运行宏
Dim InputNo As String

ActiveSheet.Unprotect ("password")

Range("R1").Value = InputBox("Please input your Number")

If Range("R1") > 0 Then
    MsgBox "Your password is: " & Range("R2").Value

End If
ActiveSheet.Protect ("password")
Sub Passwords()

Dim PWNum As Long
PWNum = 10 'Set to however many passwords you want to "calculate"

ActiveSheet.Unprotect ("password")

For i = 1 To PWNum
  Range("R1").Value = InputBox("Please input your Number, enter 0 to exit")
    If Range("R1") = 0 Or Len(Range("R1").Value) <> 5 Then 'Exits Sub if they enter 0 or not 5 digits
      MsgBox "Invalid Password."
      Exit Sub
    ElseIf Range("R1") > 0 Then
      MsgBox "Your password is: " & Range("R2").Value
    End If
Next i

ActiveSheet.Protect ("password")
End Sub