Wie erkenne ich Änderungen im Zellenformat?

Ich möchte eine Prozedur in eine Excel-Tabelle einbetten, die erkennt, wenn sich das Format einer Zelle ändert, z. von Text zu Nummer.

Aber ich kann nicht herausfinden, wie ich den Formattyp der Zelle finde. Ich habe versucht, dieWorksheet_Change Ereignishandler zum Überprüfen des Datentyps wie folgt:

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

Aber mit diesem Code, wenn ich den Datentyp von Zelle A1 von Zahl in Text ändere,Worksheet_Change wird nicht ausgelöst; Der Event-Handler wird nur aufgerufen, wenn ich den Inhalt der Zelle ändere.

Diese Prozedur kann auch erkennen, ob der Inhalt von einer Zahl in eine alphabetische Zeichenfolge geändert wurde, z. von "35.12" bis "abcd", aber nicht Nummer-Typ-Nummer bis Text-Typ-Nummer; Wenn ich die Zelle B1 auf Text setze, geben Sie "40" ein und fügen Sie den Inhalt der Zelle B1 in die Zelle A1 ein.vartype() Gibt weiterhin "5" zurück, sodass der Alarm nicht ausgelöst wird.

Wie kann ich feststellen, dass sich das Format geändert hat, unabhängig davon, ob sich der Inhaltstyp geändert hat?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage