只讀不能修改方法:
在EXCEL裡,選擇工具——選項——安全性——分別設置打開權限密碼和修改權限密碼,2個密碼要不一樣,然後確定,會彈出對話框讓你重新輸入密 碼,第一個框輸入你設置打開權限密碼,第二個框輸入你修改權限密碼,然後保存文件。然後你把打開權限密碼給別人就OK了,別人打開就是只讀,不能修改。要 修改需要你修改權限密碼。
補充一下:如果不想只讀打開需要密碼,可以不設置打開權限密碼,只設置修改權限密碼。
破解Excel保護方法
Excel對數據有很強的保護功能,可以對整個或部分數據隱藏、禁止復制和修改等,但有時候,由於忘記了密碼,或者記不起以前自己到底做了哪些改動,這種保護反而會為難自己。針對這種情況,我總結了幾種解除保護的方法,供大家參考,並希望能夠以此拋磚引玉。
一、解除單元格的保護
1.取消隱藏的行或列
被隱藏的行或列有一個明顯的標志,那就是在行標題欄或列標題欄上有一條粗的黑線。取消隱藏的行或列的方法有兩種,一種是直接拖動隱藏處的行或列標題使之變 寬,也可以選中包含隱藏區域的行或列,通過“格式”菜單中的行列項目輸入非0數值調整行高或列寬,使數據有足夠的空間顯示出來;另一種方法是選中包含隱藏 內容的行或列區域,再通過“格式”菜單行列選項中的“取消隱藏”命令來恢復全部行列區域。
2.取消隱藏單元格或區域中的數據
為了不讓他人直接看到單元格的內容,一種簡單的方法就是把數據顏色設置成與背景色相同,這時我們只要拖選整個工作表即可讓數據原形畢露;如果用圖片、矩形 框之類的非字符內容將重要數據遮蓋,需要先用拖選方式找出工作表中的圖片位置,再將其移開,激活被遮住的單元格,一般在公式編輯欄中就會顯示其內容。
若在單元格格式中使用了三個分號或空格之類的自定義格式,一般只要選中此單元格,在公式編輯欄中即可顯示其內容,要想取消這種隱藏,可重新設置此單元格格式,在“數字”選項卡中選擇“常規”即可。
如果選中懷疑有數據的單元格後並沒有在公式編輯欄中顯示數據,不一定它就真的沒有數據,我們只要看一下單元格的格式能否設置,若不能的話說明工作表被保 護,如果不用密碼可以取消工作表保護的話,再在單元格格式設置中先查看數據格式是否為自定義,然後查看“保護”選項卡,看看是否已勾選了“隱藏”項,將這 些都取消就可以知道單元格是否真的沒有內容。當然,如果在撤消工作表保護時需要密碼的話,我們將無可奈何,除非用戶設置的密碼很簡單,那我就告訴你一個秘 密,當密碼的形式是“*123*”或“*abc*”時,我們可以分別用“*333*”或“*ccc*”來破解,星號表示任意字符,到底是什麼只有靠猜了, 這種方法對工作表和工作簿保護的密碼也適應。
3.取消單元格數據的只讀屬性
有時單元格中的數據雖然可見,但是我們既不能修改,也不能在當前工作表中復制,對於這種保護措施,取消的方法跟上面的第2點基本相同,只要取消單元格格式 設置對話框中“保護”選項卡中的“鎖定”一項即可。當然還需要通過密碼取消工作表的保護才行。 如果我們無法通過密碼取消怎麼辦?你可以將其復制粘貼到其他工作表中,再在新的工作表中進行修改。
二、解除工作表的保護
查看是否有被隱藏的工作表,若菜單中有“格式→工作表→取消隱藏”項,則可通過此項取消隱藏的工作表。
如果在菜單中也沒有有效的“取消隱藏”項,仍然可能有被隱藏的工作表,這時我們可以任選一工作表右擊,在彈出菜單中選擇“查看代碼”,然後在左窗格中的 “Microsoft Excel 對象”列表中選擇被隱藏的工作表,將其“Visible”屬性值取“-1”退出即可,如圖所示。
如果工作表被密碼保護,則可復制當前表全部內容到另一張未保護的工作表中編輯。
三、VBA宏代碼破解法:
第一步:打開該文件,先解除默認的“宏禁用”狀態,方法是點擊工具欄下的“選項”狀態按鈕,打開“Microsoft Office安全選項”窗口,選擇其中的“啟用此內容”,“確定”退出(圖2);
再切換到“視圖”選項卡,點擊“宏”→“錄制宏”,出現“錄制新宏”窗口,在“宏名”定義一個名稱為:PasswordBreaker(圖3),點擊“確定”退出;
第二步:再點擊“宏”→“查看宏”,選擇“宏名”下的“PasswordBreaker”並點擊“編輯”,打開“Microsoft Visual Basic”編輯器,用如下內容替換右側窗口中的所有代碼:
Sub PasswordBreaker()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
ActiveWorkbook.Sheets(1).Select
Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
第三步:再點擊“宏”→“查看宏”,選擇“宏名”下的“PasswordBreaker”並點擊“執行”,密碼就現形了(圖4)。
第四步:切換“審閱”選項卡,點擊“撤消工作表保護”,然後輸入密碼即可解除鎖定。
另一個能解除Excel工作表保護的VBA腳本
Option Explicit
Public Sub AllInternalPasswords()
' Breaks worksheet and workbook structure passwords. Bob McCormick
' probably originator of base code algorithm modified for coverage
' of workbook structure / windows passwords and for multiple passwords
'
' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)
' Modified 2003-Apr-04 by JEM: All msgs to constants, and
' eliminate one Exit Sub (Version 1.1.1)
' Reveals hashed passwords NOT original passwords
Const DBLSPACE As String = vbNewLine & vbNewLine
Const AUTHORS As String = DBLSPACE & vbNewLine & _
"Adapted from Bob McCormick base code by" & _
"Norman Harker and JE McGimpsey"
Const HEADER As String = "AllInternalPasswords User Message"
Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04"
Const REPBACK As String = DBLSPACE & "Please report fa