2014-03-12 57 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)),",")

相關問題