经过大量的工作和测试(确实非常可悲),我终于成功地选择了一个范围工作表,然后将其复制/粘贴到记事本中。此后该文件将由另一个应用程序读取。不幸的是,该应用程序拒绝该文件,我无法调试原因。我收到的唯一消息是发生错误最后一行.
令人惊讶的是,当我手动复制粘贴到记事本时,它起作用了。就我的眼睛所见,两个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.
谢谢你的帮助。
按照此post https://stackoverflow.com/questions/4017968/excel-vba-puts-extra-blank-line-at-end-of-text-file-when-exporting,我终于设法擦掉了文本底部的最后一个空白行。现在正确的行是:Print #1, Mid$(txt, Len(vbCrLf) + 1) ;
然后,我必须修改 LastRow,因为它是电子表格上的行号,但不是文本文件上的最后行号。
我现在要找到一种方法append文本文件中的文本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)