Vba 将Excel文件导出到txt时添加制表符
我编写了一个VBA代码,它从am Excel工作表中获取某些行,并将它们写入TXT文件。 代码工作得很好,但我有两个问题-Vba 将Excel文件导出到txt时添加制表符,vba,excel,read-write,Vba,Excel,Read Write,我编写了一个VBA代码,它从am Excel工作表中获取某些行,并将它们写入TXT文件。 代码工作得很好,但我有两个问题- 我在复制的每两个单元格之间添加了“vbTab”字符,在TXT文件中它看起来很棒-但是当我尝试在Excel中再次打开它时,每一行都显示在一个单元格中(仅列A中的文本),没有任何空格,并且它不会像应该的那样进入列中 在TXT文件中,每行的开头和结尾都有引号(“),这不适合我在TXT文件中使用 代码如下: For i = 1 To LastRow For j = 1 To
For i = 1 To LastRow
For j = 1 To LastCol
If (j = 1) And (Cells(i, 1).Value = "~") Then
Exit For
End If
If Not IsInArray(j, IgnoreCol) Then
If j = LastCol Then
DataLine = DataLine + Trim(Cells(i, j).Value)
Else
DataLine = DataLine + Trim(Cells(i, j).Value) + vbTab
End If
End If
Next j
If (DataLine <> "") Then
Write #FileNum, DataLine
DataLine = ""
End If
Next i
i=1至最后一行的
对于j=1到LastCol
如果(j=1)和(单元格(i,1).Value=“~”),则
退出
如果结束
如果不是IsInArray(j,IgnoreCol),那么
如果j=LastCol,则
数据线=数据线+微调(单元格(i,j).值)
其他的
数据线=数据线+微调(单元格(i,j).Value)+vbTab
如果结束
如果结束
下一个j
如果(数据线“”),则
写入#FileNum,数据行
DataLine=“”
如果结束
接下来我
谢谢!您应该更换:
写入#FileNum,数据行
与:
打印#FileNum,数据行
因为
Write#FileNum,DataLine
在数据行周围加了双引号,所以Excel将整行视为一个单元格。Print不包含双引号,所以Excel可以在每个选项卡字符处将行拆分为单元格。只是为了澄清一下,您是说当您重新阅读时,所有内容都会进入e第一单元(“A1”)?您是如何读入的?能否显示代码?或者使用“文本到列”将第1列中的文本转换为由制表符分隔的列,或者将文件重命名为.CSVAh,我认为问题可能是您将整行包装在双引号内。请尝试从整行中删除双引号。Al因此,如果将vbTab
替换为逗号,“
CSV选项将起作用。如果数据中包含逗号,则还需要将每个单元格括在两个双引号之间(但不要将整行括起来)。将Write命令替换为Print命令:Print#FileNum,dataline所需的所有代码都是将“Write”替换为“Print”“-现在可以了,谢谢你的时间和努力!”