Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将Excel文件导出到txt时添加制表符_Vba_Excel_Read Write - Fatal编程技术网

Vba 将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

我编写了一个VBA代码,它从am Excel工作表中获取某些行,并将它们写入TXT文件。 代码工作得很好,但我有两个问题-

  • 我在复制的每两个单元格之间添加了“vbTab”字符,在TXT文件中它看起来很棒-但是当我尝试在Excel中再次打开它时,每一行都显示在一个单元格中(仅列A中的文本),没有任何空格,并且它不会像应该的那样进入列中

  • 在TXT文件中,每行的开头和结尾都有引号(“),这不适合我在TXT文件中使用

  • 代码如下:

    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”“-现在可以了,谢谢你的时间和努力!”