Excel范围复制和转置粘贴到记事本。
我是一个VB新手,并希望在Excel中这样的范围内垂直呈现的数据:
- 伦敦,
- 纽约,
- 东京,
- 巴黎,
- 莫斯科,
然后水平复制并粘贴到.txt文件中
即:伦敦,纽约,东京,巴黎,莫斯科
然后保存。
我已经写了下面的文章谷歌和SO,它的作品,但转置元素不工作,有点困惑(它仍然粘贴它作为一个垂直列表)
目前名称列表大约是3k,所以我不想在EXCEL中使用TRANSPOSE()来完成。 但是,因为我需要另一个程序的名称,需要它在这种格式。
伦敦,纽约,东京,巴黎,莫斯科
任何方向感激。 谢谢!
Option Explicit Sub ExportFile() Dim ff As Long, lRow As Long Const NameOfTheSheet As String = "Names" Const sTextTileDirectoryPath As String = "C:\Users\PCHome\Desktop\" ff = VBA.FreeFile With ThisWorkbook.Sheets(NameOfTheSheet) lRow = .Range("AA" & Rows.Count).End(xlUp).Row Open sTextTileDirectoryPath & .Range("J25").Value & ".txt" For Output Access Write As #ff Print #ff, Join(Evaluate(Replace(Replace("transpose(#AA2:AA@)", "#", "'" & NameOfTheSheet & "'!"), "@", lRow)), vbNewLine) Close #ff End With MsgBox "Text File Created", vbInformation End Sub
用Application.Transpose在VBA中完成所有工作。
Print #ff, Join(Application.Transpose(worksheets(NameOfTheSheet ).Range("AA2:AA" & lRow).Value), ",") & vbNewLine