Jak wykryć zmiany w formacie komórki?
Chcę osadzić procedurę w arkuszu programu Excel, która wykryje, kiedy zmienia się format komórki, np. od tekstu do numeru.
Ale nie wiem, jak uzyskać typ formatu komórki. Próbowałem użyćWorksheet_Change
moduł obsługi zdarzeń, aby sprawdzić typ danych, w następujący sposób:
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
Ale z tym kodem, jeśli zmienię typ danych komórki A1 z Number na Text,Worksheet_Change
nie jest uruchamiany; procedura obsługi zdarzeń jest wywoływana tylko wtedy, gdy zmienię zawartość komórki.
Również ta procedura może wykryć, czy zawartość jest zmieniana z liczby na ciąg alfabetyczny, np. od „35,12” do „abcd”, ale nie od numeru typu do numeru typu tekstowego; jeśli ustawię komórkę B1 na tekst, wpisz „40”, a następnie wklej zawartość komórki B1 do komórki A1,vartype()
nadal zwraca „5”, więc alert nie jest wywoływany.
Jak mogę wykryć zmianę formatu, niezależnie od tego, czy zmienił się typ zawartości?