-1

我正在尝试编写一些代码来锁定当前工作表,其中包含每次使用宏时都会更改的随机单词。

到目前为止,我有:

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

但是,这实际上并没有使用密码“hello”锁定电子表格,而只是将其锁定并通过单击“取消保护工作表”轻松解锁。我想推进它不仅用“你好”锁定它,而且用随机词锁定它。

4

1 回答 1

2

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

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

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

于 2013-07-11T14:25:42.877 回答