2012-01-13 6 views
6

Vorrei visualizzare una finestra di dialogo dopo che un utente fa clic su una cella in un foglio di Excel. Qualcosa di simile a questo:Esci/disattiva la modalità di modifica dopo l'evento gestito doppio clic

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    MsgBox "a cell was clicked!", vbOKOnly, "a click" 
End Sub 

Funziona perfettamente bene. Il problema è che, dopo aver attivato la modalità di modifica con doppio clic, è prevista l'immissione di una formula. Come disabilitare questo comportamento?

mi piacerebbe ottenere pura funzionalità: ~ utente fa clic una cella ~ appare una finestra ~ utente chiude la finestra di dialogo ~ una cellula non entra in modalità di modifica, il foglio sembra esattamente come ha fatto prima del doppio clicca evento.

risposta

13

si deve annullare l'azione con la variabile data in argomento:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
    MsgBox "a cell was clicked!", vbOKOnly, "a click" 
    'Disable standard behavior  
    Cancel = True 
End Sub 

Ecco un esempio fittizio:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 
Dim response As Variant 
response = MsgBox("Are you sure you want to edit the cell?", vbYesNo, "Check") 
If response = vbYes Then 
    Cancel = False 
Else 
    Cancel = True 
End If 
End Sub 

Notare che non si dovrebbe impostare Cancel a False perché è il valore predefinito (questo è per lo scopo di esempio).

Problemi correlati