Как обнаружить изменения в формате ячейки?
Я хочу встроить процедуру в лист 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», поэтому предупреждение не сработало.
Как я могу определить, что формат изменился, независимо от того, изменился ли тип контента?