我被要求从Excel工作簿中删除Excel。这是为了允许工作簿在没有宏的环境中工作。
代码反转逗号分隔字符串中项的顺序。代码非常简单:
Public Function FlipIt(Sin As String) As String
Dim a, arr
FlipIt = ""
arr = Split(Sin, ",")
For Each a In arr
FlipIt = a & "," & FlipIt
Next a
FlipIt = Left(FlipIt, Len(FlipIt) - 1)
End Function它在工作表中使用,例如:
=flipit(TEXTJOIN(",",TRUE,A1:A6))

我编写代码是因为我想不出如何使TEXTJOIN()输出以相反的顺序进行。
我能想到的最好的方法就是使用一个帮助列。因此,在D1中,我输入:
=IF(ROWS($1:1)>COUNTA(A:A),"",INDEX(A:A,COUNTA(A:A)-ROWS($1:1)+1))然后向下拷贝。用途:
=TEXTJOIN(",",TRUE,D1:D6)我不敢相信“助手”列对于这么简单的事情是必需的。
有什么建议吗?
发布于 2019-07-25 16:48:22
使用此数组公式向后创建名称数组:
=TEXTJOIN(",",TRUE,INDEX(A1:A7,N(IF({1},ROWS(A1:A7)-ROW(A1:A7)+MIN(ROW(A1:A7))))))作为数组公式,在退出编辑模式时,必须使用Ctrl-Shift-Enter而不是Enter来确认。

一旦Microsoft将序列发布到Office 365,则可以将其缩短为:
=TEXTJOIN(",",TRUE,INDEX(A:A,SEQUENCE(ROWS(A1:A7),,ROWS(A1:A7),-1)))通常可以用Enter输入。
发布于 2020-02-02 21:45:17
使用新的动态数组函数,这可以作为
=TEXTJOIN(",",TRUE,INDEX(A1:A6,SORT(ROW(A1:A6),1,-1)*1,1))或者更好,如果源是泄漏范围
=TEXTJOIN(",",TRUE,INDEX(A1#,SORT(ROW(A1#),1,-1)*1,1))https://stackoverflow.com/questions/57206567
复制相似问题