我需要更新許多舊的2003 .xls文件來鎖定和保護一個單元塊以防止人們打開單元格和複製標題信息。這是一次性的過程,不幸的是,我不能阻止\限制對文件的訪問。使用VBA宏打開,鎖定單元格,然後保護工作簿,但仍然可以編輯LOCKED,PROTECTED單元格
在兼容模式下使用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
感謝您的幫助!
'當我手動重新打開文件時,我仍然可以從鎖定的單元格中複製 - 所以你的問題是,「我如何使它鎖定單元格不能被複制? – OldUgly
是的,我應該如何設置單元格,使其被鎖定,受保護並且不能從文件重新打開時進行選擇\複製。 – erdiede