移除VBA編碼保護

2021-07-03 10:12:42 字數 1316 閱讀 1095

新建乙個excel工作簿,alt+f11 開啟vba編輯器,新建乙個模組 ,複製以下**,注意如提示變數未定義,則把option explicit行刪除即可,經測試已經通過.

private function vbapassword(filename as string, optional protect as boolean = false)

if dir(filename) = "" then

exit function

else

filecopy filename, filename & ".bak"

end if

dim getdata as string * 5

open filename for binary as #1

dim cmgs as long

dim dpbo as long

for i = 1 to lof(1)

get #1, i, getdata

if getdata = "cmg=""" then cmgs = i

if getdata = "[host" then dpbo = i - 2: exit for

next

if cmgs = 0 then

msgbox "請先對vba編碼設定乙個保護密碼...", 32, "提示"

exit function

end if

if protect = false then

dim st as string * 2

dim s20 as string * 1

'取得乙個0d0a十六進製制字串

get #1, cmgs - 2, st

'取得乙個20十六制字串

get #1, dpbo + 16, s20

'替換加密部份機碼

for i = cmgs to dpbo step 2

put #1, i, st

next

'加入不配對符號

if (dpbo - cmgs) mod 2 <> 0 then

put #1, dpbo + 1, s20

end if

msgbox "檔案解密成功......", 32, "提示"

else

dim mms as string * 5

mms = "dpb="""

put #1, cmgs, mms

msgbox "對檔案特殊加密成功......", 32, "提示"

end if

close #1

end function

這段**很強的...!!

VBA 工作簿結構視窗保護

工作中經常遇到別人發來的 進行資料過濾,但針對有結構保護的工作簿無法插入新 輸出過濾內容,需要對工作簿狀態進行判斷,有保護的在原 指定位置輸出。主要針對狀態判斷 處理 可自行完善 sub 工作簿結構視窗保護 activeworkbook.protect structure true,windows ...

VBA 錄入資料後單元格自動保護

在excel中 審閱 保護工作表 可以選擇對工作表進行保護,下面的 可以用於對輸入內容的單元格進行保護 private sub worksheet selectionchange byval target as range on error resume next 出錯誤之後向下執行 sheet1....

VBA取消工作表或工作薄或工程密碼保護

sub 取消工作表保護 dim sht as worksheet for each sht in worksheets sht.protect drawingobjects true,contents true,scenarios true allowfiltering true,allowusin...