Pergunta

Eu tenho um aplicativo VB que extrai dados e cria 3 arquivos CSV (a.csv, b.csv, c.csv). Então eu usar outra planilha Excel (import.xls) para importar todos os dados dos arquivos CSV acima para esta folha.

arquivo import.xls tem uma macro que abre o CSV arquivos um por um e copia os dados. O problema que estou enfrentando é as datas nos arquivos CSV são armazenados como mm / dd / aaaa e este é copiado como é para a folha de Excel. Mas eu quero a data no formato dd / mm / yyy.

Quando eu abrir qualquer um dos arquivos CSV manualmente as datas são exibidos no formato correto (mm / dd / aaaa). Qualquer idéia de como posso resolver este problema?

Foi útil?

Solução

Você pode usar o Formato função VBA:

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

Isso irá formatá-lo como nunca você gosta.

Para uma solução mais permanant, tente alterar as configurações regionais no próprio Windows, Excel usa isso para sua data de formatação.

Iniciar -> Configurações -> Painel de Controle -> Opções Regionais.

Certifique-se de que o idioma está definido para o que for apropriado e que as configurações de data são como você quer que eles sejam

Outras dicas

Quando eu me deparo com esse problema eu costumo escrever as datas como aaaa-mm-dd que Excel irá interpretar de forma inequívoca.

Em primeiro lugar as outras respostas são todos bons mas há mais algumas informações que você pode encontrar útil

Um arquivo CSV contém apenas texto. Essa é a dados não está no formato de data, mas em um formato de texto. Então, quando você abrir um arquivo CSV no Excel, Excel interpreta padrão que os dados para você. Ele não tem que. Você poderia forçá-lo a deixá-lo como texto ou como mencionado por Mark você pode adicionar código em sua macro de importação que altera-lo para você. Se você quer um processo automatizado, então esta é a melhor solução. Basta adicionar o código no VBA para a macro que se aplica o formato de data necessário para a coluna com os dados de data. Alternativamente, você pode fazer isso manualmente após o arquivo é aberto e os dados foram colados selecionando a coluna si mesmo e arriscando o formato. Você pode personalizar formatos de número (escolha do cliente) e, em seguida, escrevê-lo você mesmo. Por exemplo, dd / mm / aaaa.

Eu tive um problema semelhante e resolvido-lo como este, essencialmente, é a 'todas as opções acima' opção

  1. Com format(date,'dd-mmm-yyyy') converter a data para o formato 2-3-4 e.g.01-Aug-2008, nenhuma maneira de um computador erros 01-ago para 08-Jan: -)
  2. Uma vez que copiar isso no Excel reverte automaticamente de volta para o formato de data / hora, converter o resultado para uma string usando cstr na função em 1
  3. Formate as células em que a data são copiados como texto (se você não fizer isso, thickheaded como excel é, ele vai convertê-lo de volta para a data / hora novamente
  4. Salvar a folha como um arquivo CSV e abrir no bloco de notas para confirmar que tem trabalhou

Algumas pessoas podem dizer que é um exagero, mas é melhor estar no lado seguro, do que ter uma chamada usuário-me daqui a um ano e me dizendo que está fazendo algo estranho com o de data

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top