Como detectar alterações no formato da célula?
Desejo incorporar um procedimento em uma planilha do Excel que detecte quando o formato de uma célula é alterado, por exemplo de texto para número.
Mas não consigo descobrir como obter o tipo de formato da célula. Eu tentei usar oWorksheet_Change
manipulador de eventos para verificar o tipo de dados, da seguinte maneira:
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
Mas, com esse código, se eu alterar o tipo de dados da célula A1 de Número para Texto,Worksheet_Change
não é acionado; o manipulador de eventos será chamado apenas se eu alterar o conteúdo da célula.
Além disso, este procedimento pode detectar se o conteúdo foi alterado de um número para uma sequência alfabética, por exemplo de "35.12" a "abcd", mas não o número do tipo Número para o número do tipo Texto; se eu definir a célula B1 como texto, digite "40" e cole o conteúdo da célula B1 na célula A1,vartype()
ainda retorna "5", para que o alerta não seja acionado.
Como posso detectar que o formato foi alterado, independentemente de o tipo de conteúdo ter sido alterado?