如何使用分隔符连接多个单元格(仅当单元格不为空时)?



我正在尝试在每个单元格之间连接 6 个分隔符为 ", "的单元格,但同时忽略空白单元格。我用这个问题来帮助我:如果不为空,如何连接多列。

问题:

我遇到了一个问题,即分隔符出现在串联文本的末尾。所以我使用 LEFT 和 LEN 来去除多余的字符。有没有办法在 VBA 中解决此问题,而无需在公式中使用 LEFT 和 LEN?

VBA代码:

Function Concat(ConcatArea As Range) As String
For Each x In ConcatArea: xx = IIf(x = "", xx & "", xx & x & ", "): Next
Concat = Left(xx, Len(xx) - 1)
End Function

公式:

=LEFT(Concat(Temp[@[En00]:[En05]]),LEN(Concat(Temp[@[En00]:[En05]]))-1)

溶液:

在@Andreas和Alun Rowe的资源的帮助下,我能够使用不同的UDF。UDF 似乎模拟了 TEXTJOIN 函数(仅在 Office 365/2019 中可用(:

Function IMPLODE(Rng As Range, Sep As String)
Dim TEMP As String
For Each Cell In Rng
If Cell.Value = "" Then
Else
TEMP = TEMP & Cell.Value & Sep
End If
Next Cell
TEMP = Left(TEMP, Len(TEMP) - Len(Sep))
IMPLODE = TEMP
End Function

您可以将 PHP 等效的内爆函数用作 UDF。
所有功劳均归原作者所有。

Function IMPLODE(Rng As Range, Sep As String)
Dim TEMP As String
For Each Cell In Rng
If Cell.Value = "" Then
Else
TEMP = TEMP & Cell.Value & Sep
End If
Next Cell
TEMP = Left(TEMP, Len(TEMP) - Len(Sep))
IMPLODE = TEMP
End Function

相关内容

  • 没有找到相关文章

最新更新