excel自定义函数合并连续选区内的单元格,代码如下,通过 =合并(要合并的选区,分隔符,是否去重复) 来完成 ,比如要合并A1:B9中的所有有值的单元格的内容,并且用逗号连接,可以这样写
=合并(A1:B9,“,”,0)
如果所先区域中有重复值,只需要对重复值合并一次的话,把第三参数改为1就行了。
=合并(A1:B9,“,”,1)
- Function 合并(rg As Range, Optional sr As String, Optional cf As Boolean)
-
- '第一参数为要合并内容的单元格区域,不能省略。区域中的空单元格会被忽略。
- '第二参数为自定义的分隔符,要用双引号引起来。如果省略该参数,则等同于第二参数为""。
- '第三参数为逻辑值,如果为false或省略,则会依次按先行后列的顺序合并所有不为空的单元格。如果为true,对于区域中有重复值的单元格,只会对重复值合并一次。
- Application.Volatile True
-
- If IsMissing(sr) Then sr = "" '如果分隔符未输入的话置为空值
-
- If IsMissing(cf) Then cf = False '如果是否去重复值未输入的话置为0,即不去重复值
-
-
- If cf = False Then
-
- Dim R As String
-
- For Each s In rg
-
- If s <> "" Then
-
- R = R & sr & s
-
- End If
-
- Next s
-
- 合并 = Mid(R, Len(sr) + 1)
-
- Else
-
- Dim d
- Set d = CreateObject("Scripting.Dictionary")
- For Each c In rg
- If c <> "" Then d(c.Value) = ""
- Next
- 合并 = Join(d.keys, sr)
- Set d = Nothing
-
- End If
-
-
- End Function
复制代码
也可以直接下载下面的附件,放在 C:\Documents and Settings\Administrator\Application Data\Microsoft\AddIns这个文件夹里面。可能不同的系统不太一样,这个地址是office加载项文件存放的默认位置。可以在c盘搜索AddIns,得到该文件夹位置。
放在那儿后,直接在任何一个excel中把该文件加载上就可以了,具体步骤是 在菜单栏选择 文件——选项——加载项——转到(G) ,然后就弹出了加载宏的对话框,然后把里面的 “合并所选区域单元格”前面打上勾,就可以了。
合并选区内的单元格:
合并所选区域单元格.xla
(29 KB, 下载次数: 191)
|