2012-01-13 7 views
6

Me gustaría mostrar un cuadro de diálogo luego de que un usuario hace clic en una celda en una hoja de Excel. Algo como esto:Salir/deshabilitar el modo de edición después de hacer doble clic en evento manejado

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

Funciona perfectamente bien. El problema es que, después de hacer doble clic en el modo de edición, se activa y se espera que se ingrese una fórmula. ¿Cómo desactivo este comportamiento?

me gustaría lograr una funcionalidad pura: ~ usuario hace clic en una celda ~ aparece un cuadro de diálogo ~ usuario cierra el cuadro de diálogo ~ una célula no entra en el modo de edición, la hoja se ve exactamente como lo hacía antes doble haga clic en evento.

Respuesta

13

tiene que cancelar la acción con la variable dada en el argumento:

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 

Aquí está un ejemplo ficticio:

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 

Tenga en cuenta que no tendría que establecer Cancel a False porque es el valor predeterminado (esto es para el propósito de ejemplo).

Cuestiones relacionadas