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

时间:2013-09-27 13:20:28

标签: excel vba loops excel-vba

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

Private Sub 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")

End Sub

我需要的是输入数字的文本输入框,一旦显示密码就重新出现,这样可以多次使用该文件,而不必关闭它并重新打开它。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

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

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