首页 > 解决方案 > 在列表底部/第一个空白单元格处停止“=组合”代码

问题描述

我正在尝试将 TaskID 代码与“,”串在一起。当前代码如下。

我希望代码停在活动列表的底部/第一个空单元格处。此外,对于输出在最后一个活动单元格之后不包括“,”。

Function Combine(WorkRng As Range, Optional Sign As String = ", ") As String

'Update 20130815

Dim Rng As Range

Dim OutStr As String

For Each Rng In WorkRng

 If Rng.Text <> " " Then

 OutStr = OutStr & Rng.Text & Sign

 End If

Next

Combine = Left(OutStr, Len(OutStr) - 1)

End Function

标签: excelvbastring-concatenation

解决方案


您可以提前检查空虚并退出循环。如果您没有剪切一个字符,而是剪切符号变量的长度,那么最后没有“,”应该没问题。

Function Combine(WorkRng As Range, Optional Sign As String = ", ") As String
Dim Rng As Range
Dim OutStr As String
    For Each Rng In WorkRng
        If Rng.Text = vbNullString Then Exit For
        OutStr = OutStr & Rng.Text & Sign
    Next
Combine = Left(OutStr, Len(OutStr) - Len(Sign))
End Function

推荐阅读