2

经过大量的工作和测试(确实非常可悲),我终于设法在工作表中选择了一个范围,然后将其复制/粘贴到记事本中。此后,该文件应由另一个应用程序读取。不幸的是,该应用程序拒绝了该文件,我无法调试原因。我收到的唯一消息是最后一行发生错误。

令人惊讶的是,当我手动复制粘贴到记事本时,它可以工作。就我的眼睛所见,两个 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 格式。目前,我的分隔符是Tab

谢谢你的帮助。

4

1 回答 1

1

在这篇文章之后,我终于设法删除了文本底部的最后一个空白行。现在正确的行是:Print #1, Mid$(txt, Len(vbCrLf) + 1) ;

然后我不得不修改我的 LastRow,因为它是我的电子表格上的行号,而不是我的文本文件上的最后一个行号。我现在将找到一种将文本附加到文本文件中的方法。

于 2013-11-07T16:10:26.760 回答