ͼʵÀý3-1 ʾÀý
´úÂëÈ«²¿Ö´ÐкóÈçͼʵÀý3-2Ëùʾ¡£
ͼʵÀý3-2 ʾÀý
16
ʵÀý4 ²ð·ÖÊý¾Ý²»Öظ´
Ò»¡¢ÎÊÌâµÄÌá³ö£º
ÓÐÒ»Áи÷ÖÖÊÖ»úÆ·ÅÆÐͺŵÄÊý¾Ý£¬ÒªÇó±àдһ¶Î´úÂ룬°´ÕÕÆ·ÅÆ»®·Ö³ÉûÓÐÖØ¸´Êý¾ÝµÄÈý´óÀà¡£ ¶þ¡¢´úÂ룺 Sub caifen() Dim Myr&, Arr, x& Dim d, d1, d2, i&, j&
Set d = CreateObject(\Set d1 = CreateObject(\Set d2 = CreateObject(\Myr = [a65536].End(xlUp).Row Arr = Range(\& Myr) Range(\& Myr).ClearContents
my = Array(\\ŵ»ùÑÇ\\ÈýÐÇ\\Ë÷°®\
gc = Array(\\ÁªÏë\\ÌìÓï\\½ðÁ¢\\²½²½¸ß\\²¨µ¼\\\¿áÅÉ\For x = 1 To UBound(Arr) For i = 0 To UBound(my)
If InStr(Arr(x, 1), my(i)) > 0 Then d(Arr(x, 1)) = \ GoTo 100 End If Next i
For j = 0 To UBound(gc)
If InStr(Arr(x, 1), gc(j)) > 0 Then d1(Arr(x, 1)) = \ GoTo 100 End If Next j
d2(Arr(x, 1)) = \100: Next x
17
Range(\+ 1, 1) = Application.Transpose(d.keys) Range(\+ 1, 1) = Application.Transpose(d1.keys) Range(\+ 1, 1) = Application.Transpose(d2.keys) End Sub
Èý¡¢´úÂëÏê½â
1¡¢Set d2 = CreateObject(\ £ºÕë¶ÔÈý¸ö²»Í¬µÄÖÖÀ࣬´´½¨d¡¢d1¡¢d2Èý¸ö×Öµä¶ÔÏó¡£
2¡¢Myr = [a65536].End(xlUp).Row £º°ÑAÁÐ×îºóÒ»Ðв»Îª¿Õ°×µÄÐÐÊý¸³¸ø±äÁ¿Myr¡£
3¡¢Arr = Range(\ £º°ÑA2¿ªÊ¼µÄÓÐÊý¾ÝµÄµ¥Ôª¸ñÇøÓò¸³¸ø±äÁ¿Arr¡£ 4¡¢Range(\£º°ÑC2µ½EÁе¥Ôª¸ñÇøÓòÇå¿Õ¡£
5¡¢my = Array(\\ŵ»ùÑÇ\\ÈýÐÇ\\Ë÷°®\ £ºVBAº¯ÊýArray·µ»ØÒ»¸öһάÊý×飬ĬÈÏϽçΪ0¡£°ÑArrayº¯Êý·µ»ØµÄÊý×鸳¸ø±äÁ¿my(óÒ×Á½ºº×ÖµÄÊ××Öĸ)¡£ 6¡¢gc = Array(\ÁªÏë\ÌìÓï\½ðÁ¢\²½²½¸ß\²¨µ¼\¿áÅÉ\ £º°ÑArrayº¯Êý·µ»ØµÄÊý×鸳¸ø±äÁ¿gc(¹ú²úÁ½ºº×ÖµÄÊ××Öĸ)¡£
7¡¢For x = 1 To UBound(Arr) £ºÔÚAÁÐÔʼÊý¾ÝµÄÊý×éÖÐÖðһѻ·¡£
8¡¢For i = 0 To UBound(my) £ºÔÚmyÊý×éÖÐÖðһѻ·¡£ÒòΪÓÐ4¸öóÒ×»úÆ·ÅÆ£¬ËùÒÔÓÃÑ»·Ã¿Ò»¸öÓëÔʼÊý¾Ý±È½Ï¡£
9¡¢If InStr(Arr(x, 1), my(i)) > 0 Then £ºVBAº¯ÊýInstr·µ»ØÔÚµÚ1¸ö²ÎÊýÖвéÕÒµÄλÖã¬Èç¹û·µ»Ø½á¹û£½0£¬±íʾÔÚµÚ1¸ö²ÎÊýÖÐûÓеÚ2¸ö²ÎÊý´æÔÚ¡£±¾¾äµÄÒâ˼ÊÇÈç¹ûÕÒµ½Ã³Ò×»úÆ·ÅÆµÄ»°£¬Ö´ÐÐÏÂÃæµÄ´úÂë¡£
10¡¢d1(Arr(x, 1)) = \ £º½ÓÉϾ䣬Èç¹ûÉÏÃæÅжϳÉÁ¢£¬¾Í°ÑArr(x, 1)¼ÓÈë×Öµäd¡£ 11¡¢GoTo 100 £ºGotoÓï¾äÓÃÓÚÎÞÌõ¼þµØ×ªÒƵ½¹ý³ÌÖÐÖ¸¶¨µÄÐС£ÕâÀï²ÉÓÃÌø³ö
For iÑ»·£¬Ò»ÊÇΪÁ˼õÉÙÑ»·µÄ´ÎÊý£¬±ÈÈç\ÕÒµ½µÄ»°£¬ºóÃæ3¸ö¾Í²»ÐèÒªÕÒÁË£»¶þÊÇΪÁËÌø¹ýÁ½¸öСѻ·Ö®ºóµÄÆäËüÆ·ÅÆ¼ÓÈëµÚ3¸ö×ÖµäµÄd2(Arr(x, 1)) = \Óï¾ä¡£
12¡¢For jÑ»·ÓëÉÏÃæÏàͬ£¬ÎªÁËÅжϵõ½¹ú²ú»úÀàµÄ×Öµäd1¡£
13¡¢d2(Arr(x, 1)) = \ £ºÈç¹ûÉÏÊöÁ½¸öСѻ·¶¼²»Âú×㣬ÄÇô¾Í¼ÓÈëÆäËüÆ·ÅÆÀà×ÖµäÀï¡£
14¡¢Range(\+ 1, 1) = Application.Transpose(d.keys) £º×îºóµÄ3¾ä·Ö±ð°Ñ×ÖµäµÄ¹Ø¼ü×ÖÊý×éתÖú󸳸øÏàÓ¦µÄµ¥Ôª¸ñÇøÓò¡£
´úÂëÖ´ÐкóÈçͼʵÀý4-1Ëùʾ¡£
18
ͼ ʵÀý4-1 ʾÀý
ɽ¾Õ»¨°æÖ÷ÓÃÁËÒ»¸ö×Öµä¶ÔÏó¾Í½â¾öÁËÉÏÊöÎÊÌâ¡£ÈÃÎÒÃÇÀ´Ñ§Ï°Ò»Ï¡£
ËÄ¡¢É½¾Õ»¨°æÖ÷µÄ´úÂ룺 Sub ²ð·Ö()
Dim pp1$, pp2$, nRow%, ds, Brr(), s(1 To 3) As Integer Set ds = CreateObject(\
pp1 = Join(WorksheetFunction.Transpose(Range(Range(\Range(\wn))), \
pp2 = Join(WorksheetFunction.Transpose(Range(Range(\Range(\wn))), \
nRow = Range(\ Arr = Range(\& nRow) ReDim Brr(1 To nRow, 1 To 3) For i = 2 To nRow
If Not ds.Exists(Arr(i, 1)) Then ds(Arr(i, 1)) = \
If pp1 Like \& Left(Arr(i, 1), 2) & \Then s(1) = s(1) + 1
19
Brr(s(1), 1) = Arr(i, 1)
ElseIf pp2 Like \& Left(Arr(i, 1), 2) & \Then s(2) = s(2) + 1 Brr(s(2), 2) = Arr(i, 1) Else
s(3) = s(3) + 1 Brr(s(3), 3) = Arr(i, 1) End If End If Next
Range(\& nRow) = Brr End Sub
Îå¡¢´úÂëÏê½â
1¡¢pp1 = Join(WorksheetFunction.Transpose(Range(Range(\ Range(\ £º
Õâ¾ä´úÂëÓÃÁËÁ½¸öVBAº¯ÊýJoin ºÍTranspose £¬Range(\´ÓG1µ¥Ôª¸ñÍùÏÂÖ±µ½×îÏÂÃæµÄµ¥Ôª¸ñ£¬Óöµ½¿Õ°×¸ñ¾ÍÍ£Ö¹¡£ÒòΪ±¾ÀýµÄG14¡¢G15µ¥Ôª¸ñÓÐ ÁíÍâµÄÊý¾Ý´æÔÚ£¬Èç¹û»¹ÊÇÓÃRange(\£¬ÄÇô¾Í»á°Ñ²»ÐèÒªµÄÊý¾Ý´ø½øÈ¥£¬Ôì³É½á¹û³ö´í¡£Transpose תÖú¯Êý£¬Ç°ÃæÒѾ½éÉܹýÁË¡£Joinº¯ÊýÊÇͨ¹ýÁ¬½Óij¸öÊý×éÖеĶà¸ö×Ó×Ö·û´®¶ø´´½¨µÄÒ»¸ö×Ö·û´®£¬±¾¾ä´úÂëÖ´ÐкóµÃµ½pp1=\ŵ»ùÑÇ, ÈýÐÇ, Ë÷°®\¡£
pp2Ò»¾äͬÉϾäÒ»Ñù£¬µÃµ½ÁíÒ»¸ö×Ö·û´®¡£
2¡¢nRow = Range(\ £º°ÑAÁÐ×îºóÒ»Ðв»Îª¿Õ°×µÄÐÐÊý¸³¸øÕûÐͱäÁ¿nRow¡£
3¡¢Arr = Range(\& nRow) £º°ÑAÁÐA1¿ªÊ¼µÄÓÐÊý¾ÝµÄµ¥Ôª¸ñÇøÓò¸³¸ø±äÁ¿
Arr¡£
4¡¢ReDim Brr(1 To nRow, 1 To 3) £ºÓÃÓÚΪ¶¯Ì¬Êý×é±äÁ¿BrrÖØÐ·ÖÅä´æ´¢¿Õ¼ä¡£µÚһάµÄϽç´Ó1µ½ÉϽçnRow£¬µÚ¶þά´Ó1µ½3¡£ 5¡¢For i = 2 To nRow £º´Ó2µ½ nRowÖðһѻ·¡£
6¡¢If Not ds.Exists(Arr(i, 1)) Then £ºÈç¹û×ÖµädsÖв»´æÔڹؼü×ÖArr(i, 1) 7¡¢ds(Arr(i, 1)) = \£º°ÑArr(i, 1)×÷Ϊ¹Ø¼ü×Ö¼ÓÈë×Öµäds¡£
8¡¢If pp1 Like \ £ºÕâÀïɽ°æÖ÷ÓÃÁ˱ȽÏÔËËã·ûLikeÀ´±È½Ïpp1ºÍÈ¡×ÔArr(i, 1)×ó±ßÁ½¸ö×Ö·û£¬ÔÙÔÚǰºó¼ÓÈÎÒâ×Ö·û×é³ÉµÄ×Ö·û´®£¬Èç¹ûÂú×ãÌõ¼þÎªÕæ£¬ÄÇôִÐÐÏÂÃæµÄÓï¾ä¡£
9¡¢s(1) = s(1) + 1 £ºÊý×ésµÄµÚÒ»¸öÔªËØ+1ÒԺ󸳸øÊý×ésµÄµÚÒ»¸öÔªËØ¡£
10¡¢Brr(s(1), 1) = Arr(i, 1) £º°ÑÕâ¸ö¹Ø¼ü×Ö¸³¸øµÚ2άΪ1µÄÁíÒ»¸öÊý×éBrr£¬Ò²¾Í
20