Enregistrer la plage dans un fichier CSV
Solution #670 sur la façon d'exporter une plage vers un fichier texte délimité.
Il s'agit d'une alternative pratique à l'utilisation de la méthode par défaut d'Excel pour enregistrer la feuille de calcul en tant que fichier texte ou fichier délimité CSV en choisissant « enregistrer sous » lorsque :
1. Vous utilisez un modèle et souhaitez uniquement exporter les données à l'exclusion des en-têtes et autres éléments divers
2. De même, vous pouvez ne vouloir exporter qu'une partie d'un ensemble de données
3. Vous souhaitez enregistrer le fichier avec un délimiteur personnalisé qui peut être unique à votre application.
Si vous avez besoin de faire 1, 2 ou 3, une fonction comme celle-ci peut vous aider. Il accepte une plage à exporter, un emplacement pour enregistrer le fichier et le délimiteur avec lequel vous souhaitez séparer vos données, puis enregistre vos données comme spécifié.
Voici comment appeler la fonction Exporter la plage:
1234567891011 | Sous-appel Export()'ExportRange(plage,où,délimiteur)Appelez ExportRange(Sheet1.Range("A1:C20"), _"C:mark.txt", ",")Fin du sous-marin |
D'abord, vous indiquez à la fonction la plage que vous souhaitez exporter, puis où l'exporter, puis le délimiteur à utiliser. Vous aurez également besoin de la fonction Exporter la plage, C'est ici:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | Fonction ExportRange (WhatRange As Range, _Où en tant que chaîne, délimiteur en tant que chaîne) en tant que chaîneDim HoldRow As Long 'test pour la nouvelle variable de ligneHoldRow = WhatRange.RowDim c As Range 'boucle à travers la variable de plagePour chaque c Dans WhatRangeSi HoldRow c.Row Alors'ajouter un saut de ligne et supprimer un délimiteur supplémentaireExportRange = Gauche(ExportRange, Len(ExportRange) - 1) _& vbCrLf & c.Texte & DélimiteurHoldRow = c.RowAutreExportRange = ExportRange & c.Text & DelimiterFin sic suivant'Trim délimiteur supplémentaireExportRange = Gauche(ExportRange, Len(ExportRange) - 1)'Tue le fichier s'il existe déjàSi Len(Dir(Où)) > 0 AlorsTuer oùFin siOpen Where For Append As #1 'écrivez le nouveau fichierImprimer #1, ExportRangeFermer #1Fonction de fin |