Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2267|回复: 4

[已解决]VBA自定义函数问题,请高手解答!

[复制链接]
发表于 2013-11-18 15:15 | 显示全部楼层 |阅读模式
下面这个自定义函数是将文本或数字根据条件合并,但是只能设置一个条件,请问高手如何实现多条件合并.

Function HB(if_range, Optional criteria, Optional hb_range, Optional separator)
    If IsMissing(separator) Then separator = " "
    If IsMissing(hb_range) Then Set hb_range = if_range
    If IsMissing(criteria) Then
        For Each c In hb_range.Cells
            t = t & separator & c
        Next
    Else
        If Left(criteria, 1) = "F" Then
            For i = 1 To if_range.Cells.Count
                If InStr(if_range.Cells(i), Mid(criteria, 2)) Then t = t & separator & hb_range.Cells(i)
            Next i
        Else
            For i = 1 To if_range.Cells.Count
                If Application.Evaluate(if_range.Cells(i) & criteria) Then t = t & separator & hb_range.Cells(i)
            Next i
        End If
    End If
    HB = Mid(t, 2)
End Function

如附图所示,我要将11月之前,负责人为高强的配合人合并在一个单元格中,中间用逗号隔开.

最佳答案
2013-11-18 18:27
leon01314 发表于 2013-11-18 16:56
请看附件,谢谢!

313667-VBA-自定义函数-文本合并.rar (10.08 KB, 下载次数: 7)
1.PNG
发表于 2013-11-18 15:57 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2013-11-18 16:56 | 显示全部楼层
那么的帅 发表于 2013-11-18 15:57
提供数据附件,把EXCEL压缩后上传

请看附件,谢谢!

文本合并.zip

12.48 KB, 下载次数: 2

回复

使用道具 举报

发表于 2013-11-18 18:27 | 显示全部楼层    本楼为最佳答案   
leon01314 发表于 2013-11-18 16:56
请看附件,谢谢!

313667-VBA-自定义函数-文本合并.rar (10.08 KB, 下载次数: 7)
回复

使用道具 举报

 楼主| 发表于 2013-11-18 21:27 | 显示全部楼层
那么的帅 发表于 2013-11-18 18:27

谢谢,你帮了我大忙了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-4 19:32 , Processed in 0.261214 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表