2013-10-31 64 views
1

經過大量的工作和測試(確實非常可憐),我終於設法選擇工作表中的範圍,然後將其複製/粘貼到記事本中。此後該文件將由另一個應用重新登錄。不幸的是,該應用程序拒絕該文件,並且我無法調試原因。我唯一的消息是發生在最後一行的錯誤。選擇範圍&複製/粘貼到記事本 - 幾乎完成

令人驚訝的是,當我手工複製粘貼到記事本時,它可以正常工作。據我的眼睛可以看到,兩個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

謝謝你的幫助。

+0

將'RngSelect = Null'改爲'將Set RngSelect = Nothing'和'Txt = Null'改爲'Txt ='「'儘管在代碼的末尾,直到並且除非' Txt'沒有在該過程中聲明... –

+0

您可能會發現函數[HERE](http://stackoverflow.com/questions/19306859/msgbox-not-big-enough-for-text)對發送信息有用記事本。 –

+0

@SiddharthRout:是的,Txt在此過程中未聲明**。 TY爲小費。 – gabx

回答

0

在此post之後,我最終設法擦除了文本底部的最後一行空白行。現在正確的行是:Print #1, Mid$(txt, Len(vbCrLf) + 1) ;

然後我不得不修改我的LastRow,因爲它是我的電子表格上的行號,但不是我的文本文件上的最後一行號。 我現在要找到一種方法來在文本文件中追加文本。

相關問題