Excel范围复制并转置粘贴到记事本。

时间:2017-10-24 21:23:31

标签: excel vba excel-vba transpose

我是一个VB新手,想要在excel中以这样的范围垂直渲染的数据:

  1. 伦敦,
  2. 纽约,
  3. 东京,
  4. 巴黎,
  5. 莫斯科,
  6. 然后将其复制并水平粘贴到.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
    

1 个答案:

答案 0 :(得分:3)

使用Application.Transpose在VBA中完成所有操作。

Print #ff, Join(Application.Transpose(worksheets(NameOfTheSheet ).Range("AA2:AA" & lRow).Value), ",") & vbNewLine