将Excel列表转换为数组格式

我在Excel中有一些相当长的货币列表,我需要转换成数组格式,用于不同的程序。 有没有内置的公式将返回一个列表的string值到一个string数组?

例如以下内容:

a b c d e 

将返回为“a”,“b”,“c”,“d”,“e”(即使它只是在公式栏中,以便我可以复制和粘贴!)

如果可能的话,我宁愿不要使用VBA,只是由于时间的限制,但是如果这样做比较容易,那么任何build议都会非常有用。

提前谢谢了

没有直接AFAIK内置。

添加一个VBA模块,粘贴:

 Public Function ToArrStr(r As Range) As String ToArrStr = """" & Join(Application.Transpose(r), """,""") & """" End Function 

然后在表单中,您可以: =ToArrStr(A1:A5)

(假设你垂直经过> 1格)

我已经看到这个在纯粹的Excel公式中处理的方式是逐行累加:

 AB --- ----------------- a =""""&A1&"""" b =B1&","""&A2&"""" c =B2&","""&A3&"""" d =B3&","""&A4&"""" 

FWIW,如果您有最新的升级到Excel,或正在使用在线应用程序,那么有一个内置的公式。 这是TEXTJOIN()。 所以:

 ="""" & TEXTJOIN(""",""",TRUE,A1:A5) & """" 

在这里输入图像说明

将列表转换为数组的另一种方法。 希望能帮助到你。

 Public Function ToArrStr1(r As Range) As String Dim out As String For i = 1 To r.Cells.Count If out = "" Then out = """" & r.Cells(i) & """" Else out = out & ",""" & r.Cells(i) & """" Next i ToArrStr1 = out End Function 

然后在表单中,您可以:= ToArrStr1(A1:A5)