2017-09-26 281 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

谢谢,解决了它 –