删除空白区域

时间:2016-03-11 15:22:04

标签: excel vba excel-vba whitespace

我需要帮助在名为"工作表"的excel电子表格中的每一行创建单独的文本文件。我希望文本文件以列A +“结果”+列H的内容命名(应该隐藏在.txt文件中,列BG是内容,我已完成编码。请找到以下内容。但是我在.txt输出文件中收到了空格。请找截图。我无法修剪这个空格。

我如何进一步解决问题?

先谢谢。

VBA代码:

Sub WriteTotxt()

Const forReading = 1, forAppending = 3, fsoForWriting = 2
Dim fs, objTextStream, sText As String
Dim lLastRow As Long, lRowLoop As Long, lLastCol As Long, lColLoop As Long

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row

For lRowLoop = 1 To lLastRow

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set objTextStream = fs.opentextfile("D:\EXCEL_TXT_TEST\New folder\" & Cells(lRowLoop, 8) & "-" & "RESULT" & "-" & Cells(lRowLoop, 1) & ".txt", fsoForWriting, True)

    sText = ""
    sText1 = ""

    For lColLoop = 1 To 7
    If lColLoop <> 7 Then

        sText = sText & "<" & Cells(lColLoop) & ">" & "," & Chr(0)
        sText1 = sText1 & Cells(lRowLoop, lColLoop) & "," & Chr(0)

     Else

      sText = sText & "<" & Cells(lColLoop) & ">" & Chr(0)
      sText1 = sText1 & Cells(lRowLoop, lColLoop) & Chr(0)

      End If


    Next lColLoop

    objTextStream.writeline (Left(sText, Len(Trim(sText)) - 1))
    objTextStream.writeline (Left(sText1, Len(Trim(sText1)) - 1))


    objTextStream.Close
    Set objTextStream = Nothing
    Set fs = Nothing

Next lRowLoop

End Sub

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以从这样的字符串中删除所有空白行 mystr = replace(mystr, vblf & vbcr, "") 这将删除空行,而不是包含空格的行或您无法看到的其他字符..

答案 1 :(得分:0)

我也可以为您的代码提供帮助,但您是否先尝试过一种简单的方法?

为什么不是文件 - &gt;保存为.csv ,并替换您的标头?除了列出的条目之前的" "空格,您的数据输出将非常相似。懒惰但很容易。

使其适应你的模块,你可以像你拥有的一样擦除......

ActiveWorkbook.SaveAs Filename:= _
"c:\MyFile.csv", FileFormat:=xlCSV _
, CreateBackup:=False

然后,只需重新读取数据,字符串操作就很容易了。