我编写了一个子例程,它将excel工作表中的数据转换为文本文件并保存,但它在文本文件的末尾留下了很多空白行。由于此选项卡每次运行时都可以获取不同数量的数据,我认为这是导致问题的原因,但我无法看到我可以做很多事情来改变它作为数据需要处理。有没有办法,使用VBA,删除文本文件末尾的空行(空格)或更好的方法,所以它不会在第一个地方创建空行?我已经做了一些搜索,但是我无法使用VBA在这个主题上找到很多。请帮助?!
'Selects appropriate worksheet - Non-MyPayFINAL
Sheets("Non-MyPay FINAL").Select
'Selects all data in column A and copies to clipboard
Range("A1", Range("A1").End(xlDown)).Select
Selection.Copy
'Add a new workbook
Workbooks.Add
'Paste selected values from previous sheet
Selection.PasteSpecial Paste:=xlPasteValues
'Build SaveAs file name (for CSV file)
MySaveFile = Format(Now(), "DDMMYYYY") & "NonMyPayFINAL" & ".CSV"
'Save template file as...(for CSV file)
ActiveWorkbook.SaveAs ("S:\MERIT OUTPUTS FOLDER\MSI Recruitment
Limited\" & MySaveFile), FileFormat:=xlCSV
'Build SaveAs file name (for Txt file)
MySaveFile = Format(Now(), "DDMMYYYY") & "NonMyPayFINAL" & ".Txt"
'Save template file as...(for Txt file)
ActiveWorkbook.SaveAs ("S:\MERIT OUTPUTS FOLDER\MSI Recruitment
Limited\" & MySaveFile), FileFormat:=xlTextWindows
我已经更新了代码部分,它复制并创建了我认为问题所在的文本文件。对此的任何帮助将不胜感激。
我找到了下面的代码,它允许我在txt文件的末尾添加文本,但同样也可以用来删除文本,如果这看起来很简单但是我没有'我已经掌握了这一点。
Sub TextFile_Create()
'PURPOSE: Add More Text To The End Of A Text File
Dim TextFile As Integer
Dim FilePath As String
'What is the file path and name for the new text file?
FilePath = "S:\MERIT OUTPUTS FOLDER\MSI Recruitment
Limited\11072017MyPayFINAL.txt"
'Determine the next file number available for use by the FileOpen
function
TextFile = FreeFile
'Open the text file
Open FilePath For Append As TextFile
'Write some lines of text
Print #TextFile, "Sincerely,"
Print #TextFile, ""
Print #TextFile, "Chris"
'Save & Close Text File
Close TextFile
End Sub
答案 0 :(得分:2)
<强> 1。删除&#34;空白&#34;的强大而基本的方法从文本行的末尾开始:
对于文本文件的每一行:读入字符串,获取最后一个字符,如果是&#34;空白&#34;则删除;重复,直到它不再是空白,写入新文件行
<强> 2。删除具有现有功能的空白
如果您没有其他空白,则可以使用&#39;替换&#39;功能,文档here。只需用&#34;&#34;替换空白(例如&#34;&#34;)。要仅删除前导和/或尾随空白,请使用trim
功能。
第3。在写入文件之前解析(推荐):
在将输出写入文件之前,请使用上述方法之一检查输出。
请注意您实际想要删除的字符。如果有疑问,请在编辑器中查看您创建的文本文件,该编辑器可以显示所有字符。
<强>更新强>
如果要编写特定数据而不是整张表,则需要相应地调整脚本。 This如此回答将为您提供如何将特定数据写入文件的良好开端。结合上述功能,你应该很高兴。
第二次更新
要从字符串中删除前导和/或尾随空格,可以使用上面提到的trim
函数。以下是examples和documentation。