原始数据:数据在不同行列中不同次数的重复出现
重复判断:按照先行后列的顺序,对前面行列重复出现的数据自动判断,并标记
重复清理:对"重复判断"步骤中出现的重复数据进行清理;
条件排序:对清理后的数据表格自动靠前排序,排序按照字段字数多少进行“行”前后排序(绝对把所有数据集成为一列或者一行来显示,因为涉及到大类区分)
大哥,不对啊!你没仔细看懂要求啊!
每行的数据是不能全部归集到一列的!
判断重复内容(先行后列)→重复内容标记→清理重复内容→空格清理|自动考前|字段文字越多的越靠后!
é常æ谢楼ä¸çå¥å¥ç»äºçåçï¼ä½æ¯å°å¼ç¡®å®æ²¡æç¨æ¥ï¼åæè¦æ±è¯´è¯¦ç»ä¸ç¹ï¼éå¾ï¼
追çSub æ¸
çéå¤æ°æ®()
Dim rnga, rngb
Set dic = CreateObject("scripting.dictionary")'å建è¯å
¸ï¼ç¨äºåé¤éå¤æ°æ®
With range([a1],[a1].SpecialCells(xlCellTypeLastCell))'åä»A1åå
æ ¼å°ææ«å°¾åå
æ ¼çå
¨ä½åºå
rnga = .Value'æå¼åå
¥å
åæ°ç»ä¸
.ClearContents'æ¸
é¤è¡¨æ ¼ä¸çå
容ï¼ç»æ°çå¤çç»æåå
¥å好åå¤
rngb = .Value'为ä¿å计ç®ç»æèè·åä¸ä¸ªä¸åè¡¨æ ¼åºåç¸å½ç空ç½å
åæ°ç»åºå
For i = 1 To UBound(rnga, 1)'ä»ç¬¬1è¡å°æåä¸è¡
m = 0'ç¨åémè®°å½è¯¥è¡å·²ç»åå
¥çä¸éå¤æ°æ®ä¸ªæ°ï¼åå§å¼ä¸º0个
For j = 1 To UBound(rnga, 2)'ä»ç¬¬1åå°æåä¸å
If rnga(i, j) "" And Not dic.exists(rnga(i, j)) Thenâè¿ä¸æ¥å¤ææ¯å
³é®ï¼ç©ºç½çæå·²ç»åäºå¨è¯å
¸ä¸çï¼å³éå¤çï¼æ°æ®è¢«åé¤ï¼
'å¦æåå¼ä¸ä¸ºç©ºä¸æªåå¨äºè¯å
¸ä¸ï¼åï¼
dic.Add rnga(i, j), ""'æè¿ä¸ªé¡¹æ·»å å°è¯å
¸ä¸
m = m + 1'å®ä½ä¸éå¤çæ°æ®éè¦åå
¥çåå·ï¼æ¯ç´§æ¥å·²ææ°æ®çå³è¾¹1å
rngb(i, m) = rnga(i, j)'å¨è®¡ç®åºçè¡åä½ç½®åå
¥è¿ä¸ªä¸éå¤æ°æ®
End If'å®æ1个æ°æ®çå¤ç
Next'å¤çåä¸è¡çä¸ä¸ä¸ªæ°æ®
Next'å¤çä¸ä¸è¡çæ°æ®
.Value = rngb'æ计ç®æå¾çç»æåå
¥ååå
æ ¼åºå
End With'ç»æ对ååå
æ ¼åºåçå¤ç
End Sub'ç»æç¨åº