EXCEL-VBA函数教程:自定义函数JOINIF函数连接文本

   2020-11-20 IP属地 浙江1740
核心提示:今天小雅邀请到《零基础玩会EXCEL-VBA》主讲小奇老师为大家分享一个EXCEL内置函数无法解决的问题。小伙伴,请看下面的截

今天小雅邀请到《零基础玩会EXCEL-VBA》主讲小奇老师为大家分享一个EXCEL内置函数无法解决的问题。

小伙伴,请看下面的截图:左边是组别、姓名。我们希望通过EXCEL实现右边的效果。

VBA函数教程 
先别往下面看哟!思考两分钟,你平时接触到的EXCEL函数能实现吗?

小奇老师给大家分享的是使用自定义函数JOINIF函数,来按条件连接文本。 下面就一起学习处理字符串的自定义函数——JOINIF函数,先认识一下: 函数名:JOINIF 作用:对参数范围中符合指定条件的单元格内容进行连接。 参数介绍:第一参数:(必须)条件区域,根据条件计算的单元格区域。第二参数:(必须)用于确定连接的条件。第三参数:(必须)要连接的实际单元格区域。 通过上面的介绍,我们不难看出,JOINIF函数和SUMIF函数极其相似,只是功能上由求和变成了连接文本。 下面我们通过一个例子:如下图,A、B列为数据源,分别为组别和姓名,目标是组织成D、E列的格式:   解决方法: 一、创建自定义函数: 1、新建一个EXCEL文档,只保留一个工作表,其余删除。按ALT+F11,打开VBE编辑器,新建一个模块,把下面的自定义函数代码复制到模块中,关闭VBE编辑器。 FunctionJOINIF(Rng1AsRange,Str,Rng2AsRange)  DimArr,Brr  DimiAsLong  DimjAsLong  DimMyStrAsString  IfRng1.Rows.Count>65536Then    Arr=Rng1.Resize(65536,Rng1.Columns)    Brr=Rng2.Resize(65536,Rng1.Columns)  Else    Arr=Rng1    Brr=Rng2  EndIf
  Fori=1ToUBound(Arr)    Forj=1ToUBound(Arr,2)      IfArr(i,j)<>""Then        IfArr(i,j)=StrThen          MyStr=MyStr&Brr(i,j)&","        EndIf      Else        ExitFor      EndIf    Nextj  Nexti  JOINIF=Left(MyStr,Len(MyStr)-1)EndFunctionExcel加载宏  2、点击【文件】【另存为】,文件保存类型选择“Excel加载宏”。它将自动存入ADDIN文件夹中。  EXCEL-VBA交流QQ群 3、从要使用此函数的EXCEL文件的【开发工具】-【加载宏】中勾选所保存的宏文件名,确定。就可以在工作表中的随心所欲的使用自定义的按条件连接文本函数啦。  4、看一下使用效果,是不是很酷呢?   OK,本篇分享结束了哟!意犹未尽吗?加入小奇老师的EXCEL-VBA交流QQ群(群号:115749006),或者扫下面的二维码进入群。群里还有小奇老师的视频教程可以下载哦! 
 
反对 0举报收藏 0打赏 0评论 0
更多>相关评论
暂时没有评论,来说点什么吧
更多>同类办公
推荐图文
推荐办公
点击排行