gpt4 book ai didi

vba - 将 Excel Range 导出到 .txt 文件时出现额外的空行

转载 作者:行者123 更新时间:2023-12-03 01:41:08 30 4
gpt4 key购买 nike

我正在尝试将 Excel 范围复制到 .txt 文件。

导出成功,但有一个异常(exception),它在末尾添加了一个“额外”空行。

我已经在SO(和其他网站)上阅读并测试了许多解决方案,但仍然没有成功。

我的代码(相关部分)

' === Export to the .txt file ===
Dim TxtFileName As String, lineText As String

TxtFileName = ThisWorkbook.Path & "\Inv_" & Format(Date, "yyyymmdd") & ".txt"

Open TxtFileName For Output As #1
With StockSht
For i = 1 To LastRow
For j = 1 To 3
If j = 3 Then
lineText = lineText & .Cells(i, j).Value2
Else ' j = 1 or 2
lineText = lineText & .Cells(i, j).Value2 & vbTab
End If
Next j
Print #1, lineText
lineText = ""
Next i
End With
Close #1

我的 StockSht (工作表对象)和 LastRow 已正确定义,并获取它们的值。

导出的 .txt 文件末尾的屏幕截图

enter image description here

最佳答案

您可以在 Print 中使用分号语句来控制插入点(即防止最后一行换行)。

MSDN 页面上的相关位:

Use a semicolon to position the insertion point immediately after the last character displayed.

我测试了这段代码:

Sub PrintTest()

Dim lng As Long

Open "C:\foo3.txt" For Output As #1

For lng = 1 To 10
If lng < 10 Then
Print #1, "foo" & lng
Else
Print #1, "foo" & lng; '<-- semi-colon prevents the newline
End If
Next lng

Close #1

End Sub

所以我会像下面一样更新您的代码(未测试):

' === Export to the .txt file ===
Dim TxtFileName As String, lineText As String

TxtFileName = ThisWorkbook.Path & "\Inv_" & Format(Date, "yyyymmdd") & ".txt"

Open TxtFileName For Output As #1
With StockSht
For i = 1 To LastRow
For j = 1 To 3
If j = 3 Then
lineText = lineText & .Cells(i, j).Value2
Else ' j = 1 or 2
lineText = lineText & .Cells(i, j).Value2 & vbTab
End If
Next j

'--- new bit: check for i against LastRow and add the semicolon on last row
If i <> LastRow Then
Print #1, lineText
Else
Print #1, lineText; '<-- semi colon keeps insertion point at end of line
End If


lineText = ""
Next i
End With
Close #1

关于vba - 将 Excel Range 导出到 .txt 文件时出现额外的空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47721311/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com