2014-03-12 30 views
7

如果我有这样的一列:转换范围逗号分隔的字符串

Col1 
abc 
def 
ghi 
jkl 

我怎样才能将其转换为一个字符串这样?:

"abc,def,ghi,jkl" 
+0

非VBA的方法是使用'&'或'Concatenate'功能。 –

+0

在Office 2016中查看CONCAT和TEXTJOIN,https://blog.crossjoin.co.uk/2016/02/05/new-ways-to-concatenate-text-in-excel-2016-with-concat-and-textjoin/ – brettdj

回答

13

可以使用Join()功能用分隔符连接1维数组的所有元素。

Transpose()函数用于形成维数组(此方法适用于单列或单列)。

Sub Main() 
    Dim arr 
    arr = Join(Application.Transpose(Range("A2:A5").Value), ",") 
    MsgBox arr 
End Sub 

或作为UDF

Public Function Merge(r As Range) As String 
    Merge = Join(Application.Transpose(r.Value), ",") 
End Function 
+0

[这只适用于单列中的单元格](http://stackoverflow.com/questions/8934184/build-a-comma-delimited-string),但不适用于单行中的单元格,如'arr = Join (Application.Transpose(Range(“A1:B1”)。Value),“,”)' – nixda

+0

@nixda我想你会想在这种情况下调换两次范围。 – 2015-09-26 13:00:38

0

双转工作做字符串连接在单行值。谢谢@ user2140173和@brettdj!

debug.print join(Application.Transpose(Application.Transpose(Range("A1:G1").Value)),",")

相关问题