【问题标题】:Excel VBA .Saveas() function to preseve formatingExcel VBA .Saveas() 函数保留格式
【发布时间】:2017-09-26 15:41:29
【问题描述】:

我正在尝试使用以下 saveas() 函数将 excel 工作表输出到 xltext 文件。该文件生成良好,但数字具有特殊格式#,###.00。输出为“1,000.00”,而不仅仅是 1,000.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

【问题讨论】:

  • 您需要使用不同的分隔符,例如制表符。如果您的数据中有逗号,使用逗号作为分隔符会导致问题。

标签: vba excel save-as


【解决方案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

输入:

和输出:

【讨论】:

  • 谢谢解决
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 2020-05-28
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 2019-06-22
相关资源
最近更新 更多