|
本帖最后由 micch 于 2019-6-19 20:19 编辑
http://club.excelhome.net/forum. ... 1467934&pid=9871622
3楼
我练习过一个textjoin类似的自定义函数,可以去重。- '声明一个函数"TJOIN",第一参数是文本类型,代表分隔符,省略默认为无分隔符;
- '第二参数选择是否去重合并,true或非0数字为去重,省略默认为去重;
- '第三参数用ParamArray,表示不确定个数的参数,可为区域,常量,表达式
- Function TJOIN(S, R, ParamArray x() As Variant) As String
- Dim A, B, Mstr$
- If IsMissing(S) Then S = ""
- If IsMissing(R) Then R = True
- FG$ = "{@|#}"
- If Not IsMissing(x) Then
- For Each A In x
- If IsArray(A) Then
- For Each B In A
- If B <> "" And InStr(Mstr & FG, FG & B & FG) < IIf(R, 1, 9 ^ 9) Then _
- Mstr = Mstr & FG & B
- Next
- Else
- If A <> "" And InStr(Mstr & FG, FG & B & FG) < IIf(R, 1, 9 ^ 9) Then _
- Mstr = Mstr & FG & A
- End If
- Next
- End If
- If Len(Mstr) Then TJOIN = Mid(Replace(Mstr, FG, S), 1 + Len(S))
- End Function
复制代码
|
评分
-
1
查看全部评分
-
|