有没有一种简单的方法可以在Excel中没有CONCATENATE的情况下将列转换为文本?

Bob*_*pez 10 excel vba excel-vba

我知道text-to-columns按钮.可以通过选择列,可能运行宏或使用类似按钮来完成相反的操作吗?

Dav*_*ens 11

通常我会说"请发布您的代码"以获取帮助/协助编写宏,但这个非常非常简单.

Public Function ColumnsToText(rng As Range, Optional DelimitBy As String = " ") As String
'Applies on a row/partial row of data. Must be continuous cells, e.g., A1:D1.
Dim var As Variant

var = Application.Transpose(Application.Transpose(rng.Value))
    ColumnsToText = Join(var, DelimitBy)

End Function
Run Code Online (Sandbox Code Playgroud)

在工作表单元格中输入它,如:

=ColumnsToText(A1:F1)

或者您可以指定可选的分隔符,默认情况下它是一个空格,但您可以使用任何字符串字符:

=ColumnsToText(A1:F1,"%")

在此输入图像描述

等等.

  • 在查看它时,我发现即使我们只有一个行或列,将范围放入变量也会创建一个二维数组.如果我使用单个转置它将单行转换为单列,反之亦然; 但它仍然是一个二维数组.通过使用双转置,我们最终得到一个1维数组,这是连接工作所需的.但为什么双转置不能简单地反转两次方向?发生了什么事? (2认同)