Domanda

Ho un'applicazione VB che estrae i dati e crea 3 file CSV (a.csv, b.csv, c.csv). Quindi uso un altro foglio di calcolo Excel (import.xls) per importare tutti i dati dai file CSV sopra in questo foglio.

Il file import.xls ha una macro che apre i file CSV uno alla volta e copia i dati. Il problema che sto affrontando è che le date nei file CSV sono memorizzate come mm / gg / aaaa e questo viene copiato come nel foglio Excel. Ma voglio la data nel formato gg / mm / aaaa.

Quando apro manualmente uno dei file CSV, le date vengono visualizzate nel formato corretto (mm / gg / aaaa). Hai idea di come posso risolvere questo problema?

È stato utile?

Soluzione

Puoi utilizzare la funzione Formato VBA:

Format(DateText, "dd/mm/yyyy")

Questo lo formatterà come preferisci.

Per una soluzione più permanente, prova a modificare le impostazioni internazionali in Windows stesso, Excel lo utilizza per la formattazione della data.

Avvia - > Impostazioni - > Pannello di controllo - > Opzioni regionali.

Assicurati che la lingua sia impostata su ciò che è appropriato e che le impostazioni della data siano come desideri

Altri suggerimenti

Quando incontro questo problema, di solito scrivo le date come aaaa-mm-gg che Excel interpreterà in modo inequivocabile.

Prima di tutto le altre risposte sono tutte buone, ma ci sono altre informazioni che potresti trovare utili

Un file CSV contiene solo testo. Cioè i dati non sono in formato data ma in formato testo. Quindi quando apri un file CSV in Excel, Excel per impostazione predefinita interpreta i dati per te. Non deve. Potresti forzarlo a lasciarlo come testo, oppure, come menzionato da Mark, puoi aggiungere codice nella macro di importazione che lo altera per te. Se vuoi un processo automatizzato, questa è la soluzione migliore. Aggiungi semplicemente il codice in VBA alla macro che applica il formato data richiesto alla colonna con i dati della data. In alternativa, è possibile farlo manualmente dopo l'apertura del file e dopo aver incollato i dati selezionando manualmente la colonna e modificando il formato. Puoi personalizzare i formati numerici (scegli personalizzato) e poi scriverlo tu stesso. Ad esempio gg / mm / aaaa.

Ho avuto un problema simile e l'ho risolto in questo modo, essenzialmente è l'opzione "tutto quanto sopra"

  1. Con il formato (data, 'gg-mmm-aaaa') converti la data nel formato 2-3-4 ad esempio, 01 agosto 2008, nessun computer errori 01 agosto per 08 gennaio :-)
  2. Da quando lo ho copiato in Excel lo riporta automaticamente in formato data / ora, converti il ??risultato a una stringa utilizzando cstr su funzione in 1
  3. Formatta le celle in cui la data viene copiato come testo (in caso contrario, sarà spessa come eccellere, lo farà convertilo nuovamente in data / ora
  4. Salva il foglio come file CSV e aprire nel blocco note per confermare lavorato

Alcune persone potrebbero dire che è eccessivo, ma è meglio essere al sicuro, piuttosto che avere un utente che mi chiama tra un anno e che mi dice che sta facendo qualcosa di strano con la data

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top