2011-12-27 65 views
3

之間的衝突,我試圖建立一個保護的工作表,其中的一個細胞具有以下特質:Excel中:驗證,保護和worksheet_beforeDoubleClick

  1. 雙擊單元格用「你好」填充它。
  2. 單元格只能是空白或包含單詞「你好」。

因此,我決定對單元格進行驗證,並編寫worksheet_beforeDoubleClick()事件。

我們假設它是單元格A1。在B1中輸入「hello」,然後將A1的驗證設置爲B1:B2範圍的列表。

我雙擊事件代碼如下:當板材是不受保護

Private Sub worksheet_beforedoubleclick(ByVal Target As Range, Cancel As Boolean) 

If Target.Row = 1 And Target.Column = 1 Then 
    Target.Value = "hello" 
End If 

End Sub 

此代碼和驗證工作正常;雙擊單元格時會填充「hello」。

但是,一旦表格被保護,雙擊單元格A1將鼠標指針變成沙漏形狀,直到我按Esc或單擊另一個單元格;單元格不會填充單詞「你好」。

任何想法是怎麼回事?

回答

3

當您保護工作表時,選中「編輯對象」複選框,它將起作用。不知道爲什麼,但它會。

3

感謝Doug在正確的方向上領先。對於未來的參考,有良好的VBA代碼段因爲這是:

ActiveSheet.Protect UserInterfaceOnly:=True, DrawingObjects:=False 

這將保護工作表,但允許宏編輯片,以及清理衝突描述。