我在excel中有一些相当长的货币列表,我需要将其转换为数组格式,以便在不同的程序中使用。是否有任何内置公式将列表的字符串值返回到字符串数组中?
例如以下内容:
a
b
c
d
e
将返回" a"," b"," c"," d"," e" (即使它只是在公式栏中,所以我可以复制并粘贴!)
如果可能的话,我宁愿不使用VBA,因为时间限制,但如果相对容易,那么任何建议都会非常有用。
非常感谢提前
答案 0 :(得分:2)
没有直接内置AFAIK。
添加VBA模块,粘贴:
Public Function ToArrStr(r As Range) As String
ToArrStr = """" & Join(Application.Transpose(r), """,""") & """"
End Function
然后在表格中,您可以:=ToArrStr(A1:A5)
(假设你的传递>垂直1个单元格)
答案 1 :(得分:2)
我看到这种方式在纯Excel公式中处理的方式是逐行累积:
A B
--- -----------------
a =""""&A1&""""
b =B1&","""&A2&""""
c =B2&","""&A3&""""
d =B3&","""&A4&""""
答案 2 :(得分:1)
FWIW,如果您最近升级到Excel,或者正在使用在线应用程序,那么就有内置公式。它是TEXTJOIN()。所以:
="""" & TEXTJOIN(""",""",TRUE,A1:A5) & """"
答案 3 :(得分:0)
将列表转换为数组的另一种方法。希望它有所帮助。
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)