Nel foglio Excel come convertire il formato data di una cella in formato generale quando il suo valore viene cambiato da data a testo (o numero)?


3

Lo trovo molto strano nel foglio Excel (o forse sono solo io), per impostazione predefinita tutte le CELLE nel foglio Excel sono in formato GENERALE (G) e quando inserisco il valore della data (1/1/2012) in una cella il il formato viene modificato fino ad oggi (D4), il che è perfetto. Ma quando cambio il valore su un valore di testo (ad esempio: train) il formato non cambia in formato generale (o formato testo), rimane comunque come formato data (D4).

Devo abilitare qualsiasi impostazione nel mio Excel per cambiare il formato da data a generale quando il valore di una cella viene cambiato da data a testo?

qualsiasi aiuto sarà molto apprezzato.

Risposte:


1

No, non puoi farlo. È una cosa una tantum.


1

Hai considerato questo invece ?

Modificare NumberFormat inserendo una cella in NumberFormat "Generale" ogni volta.

(Dovresti inserire la cella in modalità di modifica per passare comunque da una data al testo, quindi non è significativamente diverso)

Invece di controllare il formato quando si esce dalla cella.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    ActiveCell.NumberFormat = "General"
End Sub

Naturalmente questo può creare altri problemi con altre celle che non desideri come "Generali", ma potresti escludere gli intervalli, abbastanza facilmente testando ...

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If ActiveCell.Column <> 4 Then
      ActiveCell.NumberFormat = "General"
    End If
End Sub

Quando inserisci una data in un ActiveCell, Excel la convertirà comunque in formato data all'uscita, ma poiché si tratta di un formato "Generale" per iniziare con un numero seriale non verrà convertita in una data, che sembra essere il problema Adesso hai.

Lo svantaggio maggiore è che la selezione di una data esistente la convertirà in "Generale", ma mentre sei ancora nella cella puoi sempre fare clic con il pulsante destro del mouse e formattarla come data, se ti sei dimenticato di notare quale fosse la data prima di uscire.

Se vuoi ancora esplorare la formattazione della cella mentre la lasci, puoi provare anche questo

Memorizza l'ActiveCell corrente come variabile pubblica in un modulo in modo che quando lo lasci, puoi usarlo per verificare se è un formato data

La funzione Cella potrebbe essere il modo più semplice per testare un formato data

aCell = Application.Evaluate("=CELL(""format""," & previousCell & ")")
If Left(aCell, 1) <> "D" Then previouseCell.NumberFormat = "General"

0

Puoi anche usare questa funzione del foglio di lavoro:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not IsNumeric(Target.Value) And Not IsDate(Target.Value) Then
    Target.NumberFormat = "General"
  End If
End Sub

Se il valore è una stringa, verrà impostato il formato Generale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.