2017-09-26 4 views
2

J'essaie d'utiliser la fonction saveas() ci-dessous pour sortir une feuille de calcul Excel dans un fichier xltext. le fichier est généré correctement mais avec un formatage spécial de #, ###. 00. sont sortis comme "1,000.00" plutôt que juste 1.000.00. Comment puis-je supprimer ces guillemets doubles.Excel VBA .Saveas() fonction à pré-former

Dim tab_output_line, tab_output_head, tab_source As String 
Dim File_Location As String 

tab_output_line = "Upload_PO_LineItem" 
tab_source = "PBOOK" 

File_Location = Sheets(tab_source).Range("S5").Value 

Sheets(tab_output_line).Select 
ChDir File_Location 
ActiveWorkbook.SaveAs Filename:= _ 
    File_Location + tab_output_line + ".txt", FileFormat:=xlText, _ 
    CreateBackup:=False 
+0

Vous devez utiliser un délimiteur différent, comme tab. Si vos données contiennent des virgules, l'utilisation de virgules comme délimiteurs peut causer des problèmes. – braX

Répondre

1

Votre code actuel fait un fichierdélimité par des tabulations. Les cellules qui contiennent des virgules (même formatées) sont "protégées" en étant placées entre guillemets.

Pour éviter cette "protection", essayez le code comme ceci:

Sub tony2() 
    Dim N As Long, i As Long, j As Long, Record As String 
    Dim M As Long 

    N = Cells(Rows.Count, 1).End(xlUp).Row 
    Close #2 
    Open "C:\Users\Garys\desktop\tony.txt" For Output As #2 

    For i = 1 To N 
     Record = "" 
     M = Cells(i, Columns.Count).End(xlToLeft).Column 
     For j = 1 To M 
      Record = Record & vbTab & Cells(i, j).Text 
     Next j 
     Record = Mid(Record, 2) 
     Print #2, Record 
    Next i 
    Close #2 
End Sub 

Entrée:

enter image description here

et sortie:

enter image description here

+0

Merci qui l'a résolu –