0
我試圖調用保護功能的工作簿關閉之前執行,但它不工作。在WorkBook_BeforeClose()調用時保護子工作正常自身而不是調用函數BeforeClose事件不工作
這是在模塊1中找到的代碼:
Public Sub protect()
Dim index As Integer
index = 1
Do While index <= ActiveWorkbook.Worksheets.Count
ActiveWorkbook.Sheets(index).Activate
If ActiveSheet.Name <> "README" Then
ActiveSheet.unprotect
Cells.Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.Range("A1").Select
End If
index = index + 1
Loop
ActiveWorkbook.Sheets(1).Activate
End Sub
這是的ThisWorkbook找到的代碼:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call protect
End Sub
歡迎StackOverflow上,代碼的女孩。當你說「它不工作」時,你是什麼意思?代碼正在運行時發生錯誤還是代碼(看起來)完全沒有運行,因爲工作表未受到保護?如果你假定兩種情況中的後者,那麼我會插入一個'MsgBox'來確保(如果代碼運行或不運行)。另外,你如何觸發'_BeforeClose'事件?你關閉文件(讓Excel打開)還是關閉Excel(以及如何)? – Ralph
當我發出的那kinfd,我在我的代碼像'debug.print現在插入在這裏和那裏,「保護」'(或任何模塊名稱) –
的代碼是不是運行在所有。我插一個消息框,並沒有出現在關閉文件前,但保護子還是沒有運行:/當你關閉文件時,會觸發BeforeClose事件,那麼它會詢問是否要關閉拯救你之前的變化;即使您選擇取消,而不是保存代碼仍然運行您提示保存 –