¿Cómo detectar cambios en el formato de celda?
Quiero incrustar un procedimiento en una hoja de Excel que detectará cuándo cambia el formato de una celda, por ejemplo. del texto al número.
Pero no puedo averiguar cómo obtener el tipo de formato de la celda. Intenté usar elWorksheet_Change
controlador de eventos para verificar el tipo de datos, de la siguiente manera:
Private Sub worksheet_change(ByVal Target As Range)
If Target.Address = "a1" Then
If VarType(Target) <> 5 Then
MsgBox "cell format has been changed"
End If
End If
End Sub
Pero con este código en su lugar, si cambio el tipo de datos de la celda A1 de Número a Texto,Worksheet_Change
no se dispara; el controlador de eventos solo se llama si cambio el contenido de la celda.
Además, este procedimiento puede detectar si los contenidos se cambian de un número a una cadena alfabética, por ejemplo. de "35.12" a "abcd", pero no número de tipo de número a número de tipo de texto; si configuro la celda B1 en texto, luego ingrese "40", luego pegue el contenido de la celda B1 en la celda A1,vartype()
Todavía devuelve "5", por lo que la alerta no se activa.
¿Cómo puedo detectar que el formato ha cambiado, independientemente de si el tipo de contenido ha cambiado?