将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)