代码之家  ›  专栏  ›  技术社区  ›  ChyG

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

  •  2
  • ChyG  · 技术社区  · 7 年前

    我是一名VB新手,希望在excel中当前垂直呈现的数据范围如下:

    1. 伦敦
    2. 纽约
    3. 东京
    4. 巴黎
    5. 莫斯科

    然后复制并粘贴到。txt文件水平

    i、 e.致:伦敦、纽约、东京、巴黎、莫斯科

    然后保存。

    我在谷歌上写了以下帖子,它可以工作,但转置元素不起作用,有点困惑(它仍然将其粘贴为垂直列表)

    当前名称列表大约为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
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   user4039065 user4039065    7 年前

    在VBA和应用程序中完成这一切。转置

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