经过大量的工作和测试(确实很可怜),我终于设法在工作表中选择了一个范围,然后在记事本中复制/粘贴它。此后该文件将由另一个应用程序重新登记。不幸的是,应用程序拒绝该文件,我无法调试原因。我唯一的消息是在最后一行发生错误。
令人惊讶的是,当我手工复制粘贴到记事本时,它可以工作。就我的眼睛所见,两个txt文件(用我的 sub()编写的文件和用手从CP编写的文件)完全相同。我猜我的眼睛错了。我怀疑最后一行末尾或最后一行下面可能有一些 空格 我看不到。根据我的说法,我不完全理解的唯一代码部分是当前问题的位置。
查找以下部分代码:
[code]
' RngSelect is a Variant and effectively a range of cells
' Txt is a Variant
' LastRow is a Long equal to last row number of my range
With RngSelect
For Lg1 = 1 To LastRow
Txt = Txt & vbCrLf & Join$(Application.Transpose(Application.Transpose(.Rows(Lg1).Value)),vbTab) ' copy each row
Next
End With
Open FilePath For Output As #1
Print #1, Mid$(Txt, Len(vbCrLf) + 1)
Close #1
RngSelect = Null
Txt = Null
End Sub
如果它可以提供帮助,我的其他应用程序导入的文件可以采用csv格式。目前,我的分隔符是标签。
感谢您的帮助。
答案 0 :(得分:1)
在post之后,我终于设法删除了文本底部的最后一个空白行。现在正确的行是:Print #1, Mid$(txt, Len(vbCrLf) + 1) ;
然后我必须修改我的LastRow,因为它是我的电子表格上的行号,但不是我文本文件中的最后一行号。 我现在将找到一种在文本文件中追加文本的方法。