2017-09-26 282 views
2

我試圖使用下面的saveas()函數將excel工作表輸出到xltext文件。該文件生成正常,但具有#,###。00特殊格式的數字。輸出爲「1,000.00」而非僅1,000.00。我怎樣才能刪除這些雙引號。Excel VBA .Saveas()函數預先格式化

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

您需要使用一個不同的分隔符,比如製表符。如果您的數據中包含逗號,則使用逗號作爲分隔符會導致問題。 – braX

回答

1

您當前的代碼製作製表符分隔文件。包含逗號(甚至格式化)的單元格正在被雙引號括起來「保護」。

爲了避免這種 「保護」,嘗試這樣的代碼:

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 

輸入:

enter image description here

輸出:

enter image description here

+0

謝謝,解決了它 –