我想要做一个自动解锁Excel的VBA脚本。
手上的文件的VBA工具是锁着的,也就是说有脚本也进不去。
所以实际上分2步。1.解锁VBA。2.解锁保护编辑(就是Excel“审阅”里的保护工作表的解锁)
目前实际亲测已经能实现了。
第一步是新建个表格,输入脚本解锁VBA
第二步是在解锁VBA后的文件中输入解锁脚本。
但是这样有点麻烦,我想把第二步的脚本也放到第一个表格的VBA里,这样这个汇总的脚本就能先解锁VBA,再解锁保护
但是汇总的脚本,第1步是没问题的,第2步总是不行(偶尔好像有一次我发现成功了,但问题是好像保存不了,也就是说有可能是成功但没保存)。我不懂VBA,所以上来问问,看能不能帮忙看下是哪里的问题,是不是保存的问题?怎么改?
代码如下
Sub MoveProtect()
Dim FileName As String
FileName = Application.GetOpenFilename("Excel文件(*.xls & *.xla),*.xls;*.xla", , "VBA破解")
If FileName = CStr(False) Then
Exit Sub
Else
VBAPassword FileName, False
End If
'上面是解开VBA密码的脚本,每次都能成功,下面是解开保护区域的脚本,每次不能成功,感觉好像是因为保存不成功的原因
'我试过把xlBook.save放到For里面,但是提示“只读”
Dim Sheet As Excel.Worksheet
Set xlBook = Workbooks.Open(FileName)
'For i = 1 To Worksheets.Count
For Each Sheet In xlBook.Worksheets
'Set Sheet = xlBook.Worksheets(i)
Sheet.Protect DrawingObjects:=True, CONTENTS:=True, AllowFiltering:=True
Sheet.Protect DrawingObjects:=False, CONTENTS:=True, AllowFiltering:=True
Sheet.Unprotect
Next
xlBook.Save
xlBook.Close
End Sub