如何从 Excel 工作表导出 txt 文件而末尾不留空行?
我使用此代码来检测使用的范围,仅导出该范围。有必要将工作簿和数据复制打开。
Sub export_range_txt()
Workbooks.Add
y = ActiveWorkbook.Name
'insert the name of the workbook were data is been copied and create this sub there
Windows("original.xlsm").Activate
ActiveSheet.Activate
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("A1:Y" & LastRow).Copy
Windows(y).Activate
ActiveSheet.Activate
Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.DisplayAlerts = False
'change path to desired location of the txt file
ActiveWorkbook.SaveAs Filename:= _
"path\test.txt", FileFormat:=xlText, _
CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
When I export a sheet as txt it generates an empty line at the end.
I use this code to detect the used range and only export that. It is necessary to have the workbook with the data to copy open.
Sub export_range_txt()
Workbooks.Add
y = ActiveWorkbook.Name
'insert the name of the workbook were data is been copied and create this sub there
Windows("original.xlsm").Activate
ActiveSheet.Activate
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("A1:Y" & LastRow).Copy
Windows(y).Activate
ActiveSheet.Activate
Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.DisplayAlerts = False
'change path to desired location of the txt file
ActiveWorkbook.SaveAs Filename:= _
"path\test.txt", FileFormat:=xlText, _
CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
以下功能将导出一个范围为文本文件,而末尾没有空白行。
请注意,如果范围仅包含单个单元格,则该函数将失败。一个人可以调整它,但我将其留给读者。
这就是您可以
在打印语句。特别是 charpos 参数是我们在这里需要的
charpos
指定下一个字符的插入点。 使用半隆在显示的最后一个字符之后立即将插入点放置。使用选项卡(n)将插入点定位到绝对列号。使用无参数的选项卡将插入点放置在下一个打印区域的开头。 下一个字符在下一行。
如果省略了charpos,则
The following function will export a range to a text file without a blank line at the end.
Be aware, the function will fail in case the range contains a single cell only. One could adjust it but I leave that to the reader.
That's how you can test it
Further reading on the Print Statement. Especially the charpos parameter is the one we need here
charpos
Specifies the insertion point for the next character. Use a semicolon to position the insertion point immediately after the last character displayed. Use Tab(n) to position the insertion point to an absolute column number. Use Tab with no argument to position the insertion point at the beginning of the next print zone. If charpos is omitted, the next character is printed on the next line.
See below how one could use the function in the OP's code