【发布时间】:2016-08-14 00:25:08
【问题描述】:
我需要更新许多旧的 2003 .xls 文件以锁定和保护单元格块,以防止人们打开单元格并复制标题信息。这是一个一次性的过程,不幸的是,我不能阻止\限制对文件的访问。
在兼容模式下使用 Excel 2010 我拼凑了一个宏,它可以打开文件、锁定单元格、保护工作表、然后保存并关闭文件并继续处理下一个文件。但是,当我手动重新打开文件时,我仍然可以从锁定的单元格中复制。工作表显示为受保护,当我解锁它们显示为锁定的单元格并且它们显示选择锁定的单元格被选中时。有什么想法吗?
Sub Lockdown()
Dim wBk As Workbook
Dim sFileSpec As String
Dim sPathSpec As String
Dim sFoundFile As String
sPathSpec = "C:\Archive\PF\"
sFileSpec = "*.xls"
sFoundFile = Dir(sPathSpec & sFileSpec)
Do While sFoundFile <> ""
Set wBk = Workbooks.Open(sPathSpec & sFoundFile)
With wBk
Application.DisplayAlerts = False
For Each ws In Worksheets
ws.Unprotect 'Some worksheets have protection without password
ws.Unprotect Password:="A1234" 'some worksheets have password protection
ws.Range("A1:I10").Locked = True
ws.Protect contents:=True
Next
Application.DisplayAlerts = True
End With
Set wBk = Nothing
Workbooks(sFoundFile).Close True
sFoundFile = Dir
Loop
End Sub
感谢您的帮助!
【问题讨论】:
-
when I manually re-open the files I am still able to copy from the locked cells- 所以你的问题是,“我怎么做才能让锁定的单元格不能被复制?” -
是的,如何设置单元格,使其在重新打开文件时被锁定、受保护并且无法选择\复制。