EXCEL VBA单元格内只保留一个重复项

用 VBA
例C2=DFS(G)JH(G)KJHGKJHLKJ(;)KJ(;)LDSADHGG(F)JKC(X)VFTG(F)J(G)K
只删除单元内的括号和内容,从左到右删除,只保留一个重复项
我要的结果是:C2=DFSJHKJHGKJHLKJKJ(;)LDSADHGGJKC(X)VFTG(F)J(G)K
重复顶要保留一个

第1个回答  2016-07-27
方法一:数据有效性
以A列为例:
点一下A1--选中A列--数据--有效性--允许:自定义,在下面公式一栏输入
=COUNTIF(A:A,A1)=1
确定

方法二:VBA

下列宏代码可实现你的要求

[A1].Select
Range("A:A").Validation.Delete
Range("A:A").Validation.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=COUNTIF(A:A,A1)=1"追问

执行后没有动作
是删除括号和内容,只保留一个重复项

第2个回答  2016-08-13
Sub 去重复()

Columns(1).RemoveDuplicates 1

End Sub

语法

表达式.RemoveDuplicates(Columns, Header)

表达式 一个代表 Range 对象的变量。

参数

名称 必选/可选 数据类型 说明
Columns 可选 Variant 包含重复信息的列的索引数组。如果没有传递任何内容,则假定所有列都包含重复信息。
Header 可选 XlYesNoGuess 指定第一行是否包含标题信息。xlNo 是默认值;如果希望 Excel 确定标题,则指定 xlGuess。
第3个回答  2016-07-27
你带行列号截图上来看看。
另结果不应在同一单元格内,会入嵌套死循环的。追问

是删除括号和内容,只保留一个重复项

来自:求助得到的回答本回答被提问者采纳
第3个回答  2016-07-27
请把你的情况说明的再具体点
相似回答