2016-09-29 58 views
4

我有一些代码,保存活动工作表的制表符分隔文本文件,但是已经在他们一个逗号字符被加上引号,导出的单元数据,如Excel的VBA另存为制表符分隔的文件

John Hopkins, Burgers 
becomes 
"John Hopkins, Burgers" 

我该如何解决这个问题?

这是我的代码:

ActiveWorkbook.SaveAs ActiveWorkbook.path & "\" & filename, 
FileFormat:=xlText, CreateBackup:=False 

添加此: 我刚刚发现,如果我再次保存文件时,它会删除所有“”。 我可以在代码中添加额外的保存吗?

+1

检查了这一点:http://stackoverflow.com/questions/11501531/saving-a-excel-file-into-txt-format-without-quotes – Vityata

+0

如何我是否可以在Excel中找到并替换文本文件? – Heresh

回答

2

我解决了!由于报价消失,当你手动将它保存为一个分隔符的文件,但不是当你使用

ActiveWorkbook.SaveAs ActiveWorkbook.path & "\" & filename, 
FileFormat:=xlText, CreateBackup:=False 

我只是增加了一个保存上述一个后,但这次使用sendkey招模拟天生的手动方法。

ActiveWorkbook.SaveAs FIL,的FileFormat:= _ xlText

SendKeys "^{F4}" 
SendKeys "{ENTER}" 
SendKeys "{ENTER}" 
1

据FileFormat属性,您有以下格式可供选择:

xlCSV 
xlCSVMac 
xlCSVMSDOS 
xlCSVWindows 

你为什么不选择的逗号分隔值格式之一?

尝试xlCSV

+0

我尝试了所有这些,没有产生我想要的结果。 – Heresh

+0

是否有可能在该文本文件中读取并执行简单的搜索并替换以删除所有“,标记? – Heresh

+0

_是invlaid字符表示Excel .. – Heresh

0

这是一些代码我用来保存正常XLSB文件或XLS *文件的变化 可用于许多不同的文件,即使。

Sub SaveAsTDV() 

' 
' Easy way to export to Tab Deliminated Values 
' By DeLaguna 
' v17.05.10.15.06 
' 

Dim BaseFolder As String 
    Dim LitProg As String 
    Dim Path As String 
    Dim Extn As String 
     BaseFolder = "YourBase Folder\"  
     FileName = "FileName" 'File name with no Extension. 
     Extn = ".txt" 'If choosing somthing other than xlText you may change this. 

Application.DisplayAlerts = False 'Auto Yes to save 

    ChDir BaseFolder 
     ActiveWorkbook.SaveAs Filename:= BaseFolder & FileName & Extn, _ 
     FileFormat:=xlText, CreateBackup:=True 'xlText will save as Tab Deliminated text 

Application.DisplayAlerts = True ' Reverts to Excel Default showing popup messages for input. 

End Sub 

希望这可以帮助别人让我知道如果我犯了任何错误,我不得不纂敏感信息出来。

0

变化的FileFormat xlText到xlTextPrinter

ActiveWorkbook.SaveAs ActiveWorkbook.path & "\" & filename, 
    FileFormat:=xlTextPrinter, CreateBackup:=False 
相关问题