作者:绿色风
分类:
时间:2022-08-17
浏览:331
楼主 apolloh |
Q:单元格中存在多个不同的重复字符,如何重复的字符剔除,仅保留其中的一个? A:可使用自定义函数,代码如下:- '本函数需引用 Microsoft Scripting Runtime
- Function 去除重复的字符(R As Range) As String
- Dim DT As New Dictionary, i As Integer, strO As String, ary()
- On Error Resume Next
- Application.Volatile
- strO = R.Value
- For i = 1 To Len(strO)
- DT.Add Mid(strO, i, 1), 0
- Next i
- 去除重复的字符 = Join(DT.Keys, "")
- End Function
自定义函数-去除重复的字符.rar
引用Microsoft Scripting Runtime的方法,请参见动画演示:
|
2楼 gvntw |
补充说明:Dictionary (字典)对象是 “Scripting Runtime Library” 的一部分,它将任何形式的数据条目存储在数组中。每个条目都与一个唯一的关键字相关联。该关键字用来检索单个条目。 使用 CreateObject 函数可以不添加引用。 Set DT=CreateObject("Scripting.Dictionary")
|
3楼 wise |
DT.Add Mid(strO, i, 1), 0
可以写成: DT.Add Mid(strO, i, 1), nothing DT.Add Mid(strO, i, 1), "" DT( Mid(strO, i, 1))="" |
4楼 水星钓鱼 |
字典对象很牛。试了下在处理数据有效性中很有用。 |
5楼 水星钓鱼 |
Q:如何用字典顺序提取字符串中的不重复字符组合成新的字符串? A:以字符串“ExExcecellttiipp”为例,提取后的字符串为"Exceltip" 代码如下: 主要利用字典的Key不能重复的特性,结合错误处理语句和Join函数合并不重复的字符。- Sub Dic()
- On Error Resume Next
- Dim oDic As Object
- Dim sStr As String
- Dim i As Long
- sStr = "ExExcecellttiipp"
- Set oDic = CreateObject("scripting.dictionary")
- With oDic
- For i = 1 To Len(sStr)
- .Add Mid(sStr, i, 1), ""
- Next
- MsgBox Join(.Keys, "")
- End With
- End Sub
|
6楼 kevinchengcw |
这个要顶 |
7楼 初学者2012 |
学习了**** |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一