我需要帮助在名为"工作表"的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
答案 0 :(得分:0)
您可以从这样的字符串中删除所有空白行
mystr = replace(mystr, vblf & vbcr, "")
这将删除空行,而不是包含空格的行或您无法看到的其他字符..
答案 1 :(得分:0)
我也可以为您的代码提供帮助,但您是否先尝试过一种简单的方法?
为什么不是文件 - &gt;保存为.csv ,并替换您的标头?除了列出的条目之前的" "
空格,您的数据输出将非常相似。懒惰但很容易。
使其适应你的模块,你可以像你拥有的一样擦除......
ActiveWorkbook.SaveAs Filename:= _
"c:\MyFile.csv", FileFormat:=xlCSV _
, CreateBackup:=False
然后,只需重新读取数据,字符串操作就很容易了。