簡體   English   中英

如何鎖定數據驗證單元並在雙擊時解鎖

[英]How to lock Data Validation Cells and unlock on double clicking

我可以鎖定工作表中的所有單元格,並通過雙擊並輸入密碼來解鎖它們以進行編輯。

我唯一的問題是該代碼對於Data Validation單元根本不起作用。 我無法雙擊和編輯數據驗證值。

還有一種方法可以讓我自動使空白單元格不受保護,並在輸入值后得到保護,然后雙擊以請求密碼來解鎖單元格,就像我使用的代碼一樣。

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel 
    As Boolean)
    If Target.Value <> "" Then
    changeInput = MsgBox("Do you want to unlock the sheet?", vbYesNo + 
    vbQuestion, "Unlock sheet")
    If changeInput = vbYes Then
        Dim pass As String
        pass = InputBox("Enter Password")
            If pass <> "password" Then
                MsgBox ("Wrong password")
            Else
                ActiveSheet.Unprotect Password:="password"
                Target.Locked = False
            End If
    End If
    End If
    End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cel As Range
    ActiveSheet.Unprotect Password:="password"
    For Each cel In Target
    If cel.Value <> "" Then
        cel.Locked = True
    End If
    Next cel
    ActiveSheet.Protect Password:="password"

    End Sub

該代碼適用於所有其他單元格,但我希望空白單元格是可編輯的,並且此代碼不適用於數據驗證單元格。

對於data-validation單元,請嘗試在worksheet_change事件中:

ActiveSheet.Protect DrawingObjects:=False, Password:="password"

代替

ActiveSheet.Protect Password:="password"

自動保護空白單元格的一種方法是確保所有空白單元格都不會被刮擦鎖定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM