2013-07-11 60 views
-1

我试图写一些代码来锁定当前工作表,并且每次使用宏时都会随机更改一个单词。VBA随机文字模拟

到目前为止我有:

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

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

+0

你将如何得到一个随机单词?从列表中随机发信? –

+0

你的代码没有意义!你的意思是'ActiveSheet.Protect DrawingObjects:= True,内容:=真,方案:=真,密码:=“你好”? –

+0

是的,但“你好”只是一个例子。最好是随机字母。谢谢 – Joshy

回答

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 

现在,到底为什么你会保护与随机密码纸???