我是一个VB新手,想要在excel中以这样的范围垂直渲染的数据:
然后将其复制并水平粘贴到.txt文件中
即。对此:伦敦,纽约,东京,巴黎,莫斯科
然后保存。
我已经写了以下帖子google和SO并且它有效,但转置元素不起作用并且有点困惑(它仍然将其粘贴为垂直列表)
目前名称列表大约为3k,因此我不想使用TRANSPOSE()在Excel中执行此操作。但是因为我需要另一个需要它的程序的名称。
伦敦,纽约,东京,巴黎,莫斯科
任何方向赞赏。谢谢!
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
答案 0 :(得分:3)
使用Application.Transpose在VBA中完成所有操作。
Print #ff, Join(Application.Transpose(worksheets(NameOfTheSheet ).Range("AA2:AA" & lRow).Value), ",") & vbNewLine