VBA Excel formats de date/modification des valeurs de l'ouverture du fichier par programmation

J'ai quelque chose d'un problème d'ouverture .csv fichier par programmation. Le fichier est une série chronologique de données quotidiennes, avec plusieurs points de données associés à chaque date.

Quand je ouvrir manuellement le fichier, les dates s'ouvrent correctement, comme le format de la date dd/mm/yyyy. Cependant, quand j'ouvre le fichier par programmation, les dates jusqu'à le 12 de chaque mois sont ouverts comme mm/dd/yyyy, même si le format reste dd/mm/yyyy (par exemple, le 1er juillet 1983 (1/7/1983), sera ouvert le 7 janvier 1983 (7/1/1983) - ce n'est pas juste un problème de mise en forme, la Date Julienne (en nombre de jours depuis le 1er janvier 1901) associés à ces dates aussi des changements), et les dates après le 12 de chaque mois ouvert correctement, bien que, comme le texte plutôt qu'une date.

Les données provenant tant que le texte n'est pas un problème, cependant, les dates de changer dès que le fichier est ouvert, est problématique. Je pourrais essayer d'importer l'ensemble .csv fichier texte délimité par des virgules plutôt que de l'ouverture du fichier, cependant, il serait plus facile et plus rapide si je pouvais arrêter les dates de changer quand j'ouvre le fichier.

Quelqu'un a eu un problème similaire dans le passé? Tous les conseils sur ce serait très apprécié.
Cheers, Ben.

Flder = InputBox("Copy and Paste Folder path here:")

Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourcePath = FSO.GetFolder(Flder)

For Each File In SourcePath.Files        
    Workbooks.Open (File)

    FlNm = File.Name

    StrtCol = Workbooks(FlNm).Worksheets(1).Range(Cells(4, 1), Cells(4, 30)).Find ("Mean").Column

    Workbooks(FlNm).Worksheets(1).Range(Cells(1, 1), Cells(60000, 1)).Copy (Workbooks("Find Water Years V2.xls").Worksheets(1).Range("A3"))
    Workbooks(FlNm).Worksheets(1).Range(Cells(1, StrtCol), Cells(60000, StrtCol + 1)).Copy (Workbooks("Find Water Years V2.xls").Worksheets(1).Range("B3"))

    Workbooks(FlNm).Close
Next

Le problème semble se produire au niveau de la ligne des Classeurs.Open(Fichier). Désolé de ne pas jeter ce up pour commencer.

Pouvez-vous définir "ouvert par programmation"? Voulez-vous dire par automatisation d'Excel? Ou directement dans le code VBA? Il n'y a aucun moyen "d'ouvrir le fichier" pourrait changer tout contenu; c'est autre chose que cela, mais vous avez posté rien de pertinent à votre question. L'ouverture d'un .fichier csv n'est pas de faire quelque chose pour changer le contenu en lui-même (par exemple, dans le bloc-notes); après un peu de code ou autre info qui montre comment vous lisez et ce que vous faites avec le texte que vous lisez. Sinon, j'ai soupçonnez que votre question va être fermé comme "pas une vraie question". 🙂
Désolé pour le manque de clarté sur l'un Ken, le code ci-dessous.
Être d'accord avec Ken ici. Il y a une cause sous-jacente. Quel est le fichier ressemble dans le bloc-notes à ce point, comment êtes-vous de l'ouverture du fichier? Est-il en train tiré dans un modèle. Collé?
Le fichier s'ouvre directement dans excel à l'aide de Workbooks.Open(File) (voir le code ci-dessus que j'ai juste collé). Lorsque les données s'ouvre dans le bloc-notes les dates sont correctes, sous la forme jj/mm/aaaa, le même que lorsque le fichier est ouvert manuellement.
donc, rep n'est pas suffisant pour répondre à ma propre encore. La solution a été de définir la variante régionale de Workbooks.Open à true, ce qui l'oblige à analyser dans les données en utilisant les paramètres Locaux, plutôt que la valeur par défaut (états-unis). Si l'un de vous voulez répondre à la q n'hésitez pas, sinon, je vais jeter la réponse plus tard cet après-midi ou demain matin.

OriginalL'auteur Ben F | 2012-03-08