Come impostare il formato della data quando si inserisce manualmente la data su excel, senza modificare le impostazioni regionali?

Nella mia locale, la data è inserita come gg / mm / aaaa o le sue variazioni (compresi dd-mm-yy). Ho fatto un module Excel (nel file normale di Excel), già formattato per mostrare la data come gg / mm / aaaa, ma quando ho digitato "05/04/2015" verrà visualizzato come "04/05/2015". So che questo può essere risolto cambiando l'ambiente regionale al mio ambiente locale, ma devo distribuire questo module a molte persone senza conoscenza di cambiamenti nell'ambiente regionale e supponendo che nessuno possa insegnare come, da qui la mia domanda:

C'è un modo per inserire "05/04/2015" e essere riconosciuto come "5 aprile 2015", senza wherer modificare le impostazioni regionali?

Nota supplementare: quando intendo "4 maggio 15" (digitato il 4/5/15), Excel riconoscerà questo come "5 aprile 15" perché Excel prende input come formato "mm / dd / yy". Devo cambiare il comportmento predefinito di Excel per prendere come "dd / mm / yyyy" in quanto questo è il modo in cui gli utenti potranno immettere.

Se ansible, l'impostazione dovrebbe includere / incorporare sul file per consentire agli utenti finali di utilizzare il module senza modificare l'impostazione.

Non ho familiarità con le macro e la VBA, ma sono disposte a provare quelle 🙂

EDIT: questo è relativo alla mia domanda: come modificare il formato della data da dd-mm-yyyy a dd-mm-yy nella barra delle formule di MS-EXCEL?

ma non ho bisogno di cambiare tutta la formula bar, finché Excel riconosce che sto digitando in formato dd / mm / yy.

L'evento Worksheet_Change potrebbe sostanzialmente eseguire ciò che stai chiedendo, ma devi essere sicuro che l'utente intenda modificare le cose. Ho aggiunto una scatola di scelta 'Yes/No' alla mia soluzione per evitare eventuali modifiche accidentali. Facendo questo senza una casella di scelta è rischioso perché se si è tentato di modificare un valore esistente, si potrebbe tornare alla formattazione originale.

Questo codice dovrebbe "vivere" all'interno del codice VBA per il foglio che vuoi che agisca:

 Private Sub Worksheet_Change(ByVal Target As Range) Dim iDay, iMonth, iYear As Integer Dim solutionRange As Range 'the cells you want the date to change for Set solutionRange = Range("D4:D12") 'only triggers if the user's changing one cell If Target.Count = 1 Then If (Not (Intersect(solutionRange, Target) Is Nothing) And (Target.Value > 0)) Then 'disable application events so this change doesn't trigger itself Application.EnableEvents = False iDay = Left(Target.Value, 2) iMonth = Mid(Target.Value, 4, 2) iYear = Right(Target.Value, 4) ' Give the user a choice to say whether they need the date changed. You *can* remove both the 'If' and 'End If' if you really need to, but I'd strongly suggest keeping them. If (MsgBox("Have you entered your date in the format 'MM/DD/YYYY'?", vbYesNo) = vbYes) Then Target.Value = DateValue(iMonth & "/" & iDay & "/" & iYear) End If Application.EnableEvents = True End If End If End Sub 

Non credo che tu possa cambiare l'impostazione predefinita. È particolarmente difficile da risolvere quando import i dati da oltreoceano.

I modi less disordinati di fare questo che posso pensare sono una sorta di modo manuale …


Opzione 1: Potremmo accettare gli input in formato text e inserirli nelle celle, in questo modo Excel non cercherà di interpretarli come date. Quindi, in una cella adiacente potremmo utilizzare la function DATE insieme a LEFT, RIGHT e MID. Ad esempio (specificare che l'utente deve inserire la data in pieno MM / DD / YYYY):

Cell A1: 04/05/2015

Cella B1: = DATA (DESTRA (A1,4), SINISTRA (A1,2), MID (A1,4,2)


Opzione 2: Richiesta che l'utente inserisca il giorno, il mese e l'anno in tre celle o campi separati, che potrebbero essere migliori o peggiori a seconda dell'installazione.

Comunque, buona fortuna!

So perfettamente di che cosa stai parlando. Mi piace scrivere YY-MM-DD. L'impostazione per modificarla a quello che volete non è in Excel. L'impostazione che si desidera è nelle windows. È nascosto da qualche parte nel pannello di controllo "tempo e lingua".

Ho dovuto andare ad una impostazione avanzata "Modifica data e ora" e cambiare l'impostazione "Data breve".

A seconda del sistema operativo che utilizzi le direzioni potrebbe essere un po 'diverso.

Spero che questo ti aiuti.

Evidenziare la colonna in questione, fare clic con il button destro del mouse sulla colonna selezionata, quindi Formattare celle … Selezionare Personalizzato e fare clic sul field che indica Generale, digitare "gg / mm / aaaa". Questo dovrebbe funzionare.

L'ho capito con l'ispirazione della risposta di Lance sopra. È ansible modificare l'impostazione della data di windows nel modo seguente (non so come farlo in altri sisthemes operativi):

  1. Apri il pannello di controllo
  2. Fare clic su 'Cambia tastiere e altro metodo di input' – la window Regione e lingua si apre
  3. Cambiare la data breve a mm / gg / aaaa o come desideri
  4. Modifica la data lunga a MMMM-dd-yy o come desideri
  5. Fare clic su OK