J'ai un fichier csv de 1,2 millions de dossiers de texte. Les champs alphanumériques sont entourés de guillemets, les champs date/heure ou numériques ne le sont pas.Vous voulez VBA dans Excel pour lire très gros CSV et créer un fichier de sortie d'un petit sous-ensemble de la CSV
Par exemple "Fred", "Smith" 01/07/19672, "7, The High Street", "Anytown", "Anycounty", "LS1 7AA"
Ce que je veux faire est d'écrire VBA dans Excel (plus ou moins le seul outil à ma disposition que je maîtrise raisonnablement bien) qui lit l'enregistrement CSV par enregistrement, effectue une vérification (comme cela arrive sur le dernier champ, le code postal) puis sort un petit sous-ensemble des enregistrements de 1,2 m vers un nouveau fichier de sortie.
Je comprends comment ouvrir les deux fichiers, lisez le dossier, faire ce que je dois faire avec les données et l'écrire (je vais juste sortie l'enregistrement d'entrée avec un préfixe indiquant un type d'exception)
Ce que je ne sais pas, c'est comment analyser le CSV dans VBA correctement. Je ne peux pas faire un simple balayage de texte et rechercher des virgules car le texte a parfois des virgules (d'où les champs de texte sont délimités par du texte)
Y at-il une commande fantastique qui me permettrait d'obtenir rapidement les données du nième champ dans mon dossier?
Ce que je veux est s_work = champ (s_input_record, 5) où 5 est le numéro du champ dans mon CSV ....
Un grand merci, C
J'ai utilisé une technique similaire pour accomplir la même chose dans le passé –
+ 1 c'est la meilleure solution pour un si grand ensemble de données, je l'ai fait avec des données agrégées dans le passé –
@Fionnuala, je suis en utilisant votre réponse pour lire un fichier CSV dans la mémoire. Cependant, je rencontre une limite de 280 car comme je l'ai souligné dans une question: http://stackoverflow.com/questions/34230062/excel-vba-reading-csv-file-with-large-multiline-values-using-adodb -avec-jet-ou-a Avez-vous connu un tel comportement et aucune idée de comment surmonter cette limitation? – IzCe