Как обнаружить изменения в формате ячейки?

Я хочу встроить процедуру в лист Excel, которая будет определять, когда изменяется формат ячейки, например, из текста в номер.

Но я не могу понять, как получить тип формата ячейки. Я пытался использоватьWorksheet_Change Обработчик событий для проверки типа данных выглядит следующим образом:

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

Но с этим кодом, если я изменю тип данных ячейки A1 с Number на Text,Worksheet_Change не срабатывает; обработчик события вызывается только если я изменяю содержимое ячейки.

Кроме того, эта процедура может определять, изменяется ли содержимое с номера на алфавитную строку, например, от "35.12" до "abcd", но не от номера числового типа до номера текстового типа; если я установлю для ячейки B1 текст, затем введите «40», затем вставьте содержимое ячейки B1 в ячейку A1,vartype() по-прежнему возвращает «5», поэтому предупреждение не сработало.

Как я могу определить, что формат изменился, независимо от того, изменился ли тип контента?

Ответы на вопрос(3)

Ваш ответ на вопрос