Excel VBA.Saveas()函数来保存格式化

Excel VBA.Saveas()函数来保存格式化,vba,excel,save-as,Vba,Excel,Save As,我试图使用下面的saveas()函数将excel工作表输出到xltext文件。该文件生成得很好,但数字的特殊格式为#,###.00。输出为“1000.00”,而不仅仅是1000.00。如何删除这些双引号 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"

我试图使用下面的saveas()函数将excel工作表输出到xltext文件。该文件生成得很好,但数字的特殊格式为#,###.00。输出为“1000.00”,而不仅仅是1000.00。如何删除这些双引号

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

您当前的代码正在生成一个以制表符分隔的文件。包含逗号(即使已格式化)的单元格通过用双引号括起来进行“保护”

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
要避免这种“保护”,请尝试以下代码:

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
输入:

和输出:


您需要使用不同的分隔符,如tab。如果您的数据中有逗号,使用逗号作为分隔符会导致问题。谢谢,这就解决了问题