从文本文件的末尾删除空白行

时间:2017-07-11 08:41:49

标签: excel vba excel-vba

我编写了一个子例程,它将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

1 个答案:

答案 0 :(得分:2)

<强> 1。删除&#34;空白&#34;的强大而基本的方法从文本行的末尾开始:

对于文本文件的每一行:读入字符串,获取最后一个字符,如果是&#34;空白&#34;则删除;重复,直到它不再是空白,写入新文件行

<强> 2。删除具有现有功能的空白

如果您没有其他空白,则可以使用&#39;替换&#39;功能,文档here。只需用&#34;&#34;替换空白(例如&#34;&#34;)。要仅删除前导和/或尾随空白,请使用trim功能。

第3。在写入文件之前解析(推荐):

在将输出写入文件之前,请使用上述方法之一检查输出。

请注意您实际想要删除的字符。如果有疑问,请在编辑器中查看您创建的文本文件,该编辑器可以显示所有字符。

<强>更新

如果要编写特定数据而不是整张表,则需要相应地调整脚本。 This如此回答将为您提供如何将特定数据写入文件的良好开端。结合上述功能,你应该很高兴。

第二次更新

要从字符串中删除前导和/或尾随空格,可以使用上面提到的trim函数。以下是examplesdocumentation