VBA随机字模拟

时间:2013-07-11 13:47:01

标签: excel vba encryption random

我试图编写一些代码,用当前的工作表锁定每次使用宏时随机更改的单词。

到目前为止,我有:

Sub Protect()
'
' Protect Macro
'
    Dim strPassWord As String
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    strPassWord = "hello"    
End Sub

然而,这实际上并没有使用密码“hello”锁定电子表格,而只是将其锁定并通过单击“unprotect sheet”轻松解锁。我想推进这个不仅用“你好”来锁定它,而是用一个随机的词来锁定它。

1 个答案:

答案 0 :(得分:0)

创建一个随机“单词”的函数

Function RandomWord() as String
    Dim i as Long, ret as String
    For i=1 To 8 '8 characters length
        ret=ret & Chr(Rnd*(Asc("z")-Asc("a")+1)+Asc("a")-1)
    Next
    RandomWord=ret
End Function

所以你可以使用

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=RandomWord

现在,为什么你要用随机密码来保护工作表?

相关问题