Enregistrer au format CSV avec séparateur point-virgule
Je suis en train d'utiliser cette fonction pour enregistrer, mais j'ai un problème avec ça:
Private Sub spara()
ActiveWorkbook.SaveAs Filename:="T:\filepath+ ActiveWorkbook.Name", _
FileFormat:=xlCSV, CreateBackup:=False
End Sub
Il enregistre automatiquement avec ,
mais j'en ai besoin pour enregistrer avec ;
dans son dossier. Est-il possible de modifier la manière dont elle enregistre en quelque sorte?
J'ai essayé de googler autour de ce problème, mais toutes les macros en ce qui concerne .csv fichier de sauvegarde sont juste comment faire pour enregistrer dans .csv et de la manière de répartir plusieurs feuilles .csv .
Pas facile, je le crains. Un fichier csv est défini pour avoir des virgules. Et csv d'analyse dans tous les cas est difficile que vous avez à gérer des chaînes entre guillemets contenant des virgules correctement. Ce que je ferais si j'étais vous, c'est du post-processus de la csv vous-même. Dans le cas le plus simple que vous pourriez sortir avec la conversion de chaque virgule dans le fichier de sortie avec un point-virgule. Dans les cas plus complexes (comme je l'ai déjà fait allusion), vous pouvez utiliser une expression régulière. Ou créer votre propre économiseur d'en vba.
Comme son nom l'stands CVS est la Virgule Seperatd Valeurs. Vous pouvez utiliser un script pour ouvrir la .fichier csv puis remplacez ',''; ' et enregistrer.
Malheureusement, ce n'est pas vrai. Les Versions localisées de microsoft Excel utiliser le ";" comme Séparateur. La Version allemande de microsoft Excel pour cela, je ne sais pas qui d'autres à le faire. Aussi, csv peuvent également se présenter aux "caractères séparés valeurs" - ce qui en fait csv une horrible cassé format.
Sauer Il est utile de savoir que l'. Pensez-vous saknar namn pourrait en quelque sorte tromper son Excel en pensant qu'il est locale est, par exemple, l'allemand?
Non, je ne pense pas. J'ai cherché un moyen facile de le faire, parce que la localisation des Fonctions est ennuyeux, mais je n'ai trouvé aucun changement facile de le faire.
Comme son nom l'stands CVS est la Virgule Seperatd Valeurs. Vous pouvez utiliser un script pour ouvrir la .fichier csv puis remplacez ',''; ' et enregistrer.
Malheureusement, ce n'est pas vrai. Les Versions localisées de microsoft Excel utiliser le ";" comme Séparateur. La Version allemande de microsoft Excel pour cela, je ne sais pas qui d'autres à le faire. Aussi, csv peuvent également se présenter aux "caractères séparés valeurs" - ce qui en fait csv une horrible cassé format.
Sauer Il est utile de savoir que l'. Pensez-vous saknar namn pourrait en quelque sorte tromper son Excel en pensant qu'il est locale est, par exemple, l'allemand?
Non, je ne pense pas. J'ai cherché un moyen facile de le faire, parce que la localisation des Fonctions est ennuyeux, mais je n'ai trouvé aucun changement facile de le faire.
OriginalL'auteur saknar namn | 2013-10-09
Vous devez vous connecter pour publier un commentaire.
Quelle langue est-ce que votre Excel utiliser? Si votre langue maternelle utilise ";" en tant que par défaut, vous pouvez passer le paramètre "local:=True"
Si pas, votre seul choix est la recherche et le remplacement après...
local:=True
semble ne fonctionne pas sur ma machine (utilise encore,
comme séparateur).il fonctionne en fait ici, en suède, donc, je vous remercie énormément pour cela. local:=True est la façon de faire
OriginalL'auteur Christian Sauer
Modifier les Options Excel (Avancé, les options d'Édition) pour définir le séparateur Décimal à
,
(évidemment (!))OriginalL'auteur pnuts
C'est tout à fait possible que ce problème n'est pas soluble à l'aide de VBA Excel uniquement. Le problème est que, si Excel
Save As...
utilise la machine locale de définir le séparateur de liste valeur, Excel VBA utilise toujours régionaux en-US, ainsi, il utilise toujours,
comme un séparateur de liste.Je voudrais vous recommandons d'enregistrer un fichier CSV et ensuite utiliser la console personnalisée app/script pour le post-traitement. Il y a beaucoup de CSV analyseurs disponibles, qui peut lire la
,-csv
et ensuite de l'enregistrer comme;-csv
.OriginalL'auteur Petr Abdulin
Je l'ai résolu en ajoutant "SaveChanges:=False" lors de la fermeture du classeur
OriginalL'auteur Lionel T.
J'avais été à la recherche pour aider à résoudre un problème similaire, j'ai eu,
J'ai eu une feuille excel que j'ai exporter vers un fichier csv, c'est alors uloaded ailleurs, mais nécessite l'utilisation de points-virgules plutôt que par des virgules pour le caractère de séparation, cela a bien fonctionné quand j'étais exporter manuellement le fichier que j'avais déjà changé le suivant
Panneau de configuration >> de la Région et de la Langue >> bac d'alimentation supplémentaire de paramètres >> séparateur de Liste
de virgule à la place du point-virgule.
Mais quand j'ai essayé d'automatiser via VBA elle a fait défaut de retour à la virgule,
pour corriger, j'ai ajouté le local paprameter comme suggéré par Christian Sauer ci-dessus, qui prend alors le fait que j'ai changé mes paramètres régionaux.
Merci à Christian pour le pointeur.
OriginalL'auteur Jason
Pour les personnes ayant des problèmes avec ce code
La deuxième ligne est vraiment important, si
wa.Close False
n'est pas là, il va vous demander l'approbation pour enregistrer, ou siwa.Close True
il remplacera le ";" pour ",".Après d'aller dans les paramètres et faire des ";" la liste délimiteur, VBA était encore en les séparant par une ",". Modifié le code ci-dessus et il a été fait.
Espère que ce jeter un peu de lumière pour certains
OriginalL'auteur dmb