下面是我的功能,由於某些原因,它不起作用。如果我在最後一條if語句中放置一個斷點並刪除發送「%{F11}」,它確實有效。所以我的猜測是「%F11」不起作用。有人有想法嗎?我無法用VBA解鎖vbaproject
Sub UnprotecPassword(wb As Workbook, ByVal projectPassword As String)
Dim currentActiveWb As Workbook
If wb.VBProject.Protection <> vbext_pp_locked Then
Exit Sub
End If
Set currentActiveWb = ActiveWorkbook
wb.Activate
SendKeys "%{F11}"
SendKeys "^r" ' Set focus to Explorer
SendKeys "{TAB}" ' Tab to locked project
SendKeys "~" ' Enter
SendKeys projectPassword
SendKeys "~" ' Enter
If (wb.VBProject.Protection = vbext_pp_locked) Then
MsgBox ("failed to unlock")
End If
currentActiveWb.Activate
End Sub
1)改變' vbext_pp_locked'到'1' 2)從一個宏中調用上面的子宏,它是從宏工具欄中調用的,而不是從VBA編輯器調用的,它將起作用。我只是測試它,它的工作原理 –
謝謝,你是什麼意思與Nr 2,即時通訊新的VBA所以請多解釋一下:) – Merni
你使用哪個Excel版本? –