ʵÀý4 ²ð·ÖÊý¾Ý²»Öظ´
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£¬Ò²¾Í
21
³£¼û×ÖµäÓ÷¨¼¯½õ¼°´úÂëÏê½â
ÊÇÎÒÃÇÒªÇóµÄóÒ×»úÀà¡£pp1×Ö·û´®Àï¶¼ÊÇóÒ×»úÀàµÄÆ·ÅÆ¡£
11¡¢ElseIf pp2 Like \ £ºÍ¬Ñù£¬Èç¹ûÂú×ã¹ú²úÆ·ÅÆÀàÕâ¸öÌõ¼þ£¬ÄÇôִÐÐÏÂÃæµÄ´úÂë¡£
12¡¢s(2) = s(2) + 1 £ºÊý×ésµÄµÚ¶þ¸öÔªËØ+1ÒԺ󸳸øÊý×ésµÄµÚ¶þ¸öÔªËØ¡£
13¡¢Brr(s(2), 2) = Arr(i, 1) £º°ÑÕâ¸ö¹Ø¼ü×Ö¸³¸øµÚ2άΪ2µÄÁíÒ»¸öÊý×éBrr£¬Ò²¾ÍÊÇÎÒÃÇÒªÇóµÄ¹ú²úÆ·ÅÆÀà¡£pp2×Ö·û´®Àï¶¼Êǹú²úÆ·ÅÆÀàµÄÆ·ÅÆ¡£
14¡¢s(3) = s(3) + 1 £ºÇ°Èç¹ûÌõ¼þ¶¼²»Âú×ãʱ£¬Êý×ésµÄµÚÈý¸öÔªËØ+1ÒԺ󸳸øÊý×ésµÄµÚÈý¸öÔªËØ¡£
15¡¢Brr(s(3), 3) = Arr(i, 1) £º°ÑÕâ¸ö¹Ø¼ü×Ö¸³¸øµÚ3άΪ1µÄÁíÒ»¸öÊý×éBrr£¬Ò²¾ÍÊÇÎÒÃÇÒªÇóµÄÆäËüÆ·ÅÆÀà¡£
16¡¢Range(\ £º°ÑÊý×éBrr¸³¸ø[c2]µ¥Ôª¸ñ¿ªÊ¼µÄÇøÓòÖС£
ʵÀý5 ǰÆÚ°ó¶¨µÄ×ÖµäʵÀý
Ò»¡¢ÎÊÌâµÄÌá³ö£º
ÓжàÁжàÐÐÊý¾Ý£¬ÆäÖÐÓÐÖØ¸´µÄÐУ¬ÒªÇó±àдһ¶Î´úÂ룬ÇóµÃ²»Öظ´µÄÐÐÊý¾Ý¡£ ÈçͼʵÀý5-1Ëùʾ¡£
22
ͼ ʵÀý5-1 ʾÀý
ʵÀý5 ǰÆÚ°ó¶¨µÄ×ÖµäʵÀý
¶þ¡¢´úÂ룺
Sub ±£ÁôÔÊý¾Ý() ?by:ldy888
?ǰÆÚ°ó¶¨£¬ÐèÏÈÒýÓÃc:\\windows\\system32\\scrrun.dll Dim d As New Dictionary,t For i = 2 To 5
Set d(Cells(i, 1) & \= Range(Cells(i, 1), Cells(i, 4))
Next t=d.items End Sub
Èý¡¢´úÂëÏê½â
1¡¢Dim d As New Dictionary, t £º±¾¶Î´úÂëÐèÒªÏÈÒýÓÃ΢ÈíµÄ½Å±¾ÔËÐÐʱ¿âMicrosoft Scripting Runtime£¬¿ÉÔÚVBE´°¿Ú£¬´Ó²Ëµ¥£¹¤¾ß£ÒýÓã¬È»ºó¹´Ñ¡Microsoft Scripting Runtime£¬»òÕßµã»÷ä¯ÀÀ£¬ÔÚÌí¼ÓÒýÓöԻ°¿òÖÐÑ¡Ôñc:\\windows\\system32\\scrrun.dll£¬²¢´ò¿ª£¬È·¶¨¡£Íê³ÉÒýÓá£ÔÚ±¾ÉùÃ÷Óï¾äÖаÑ×ÖµädÉùÃ÷ΪNew Dictionary¡£Õâ¾ÍÊÇ¡±Ç°ÆÚ°ó¶¨¡±ÁË¡£ÉÏÃæµÄʵÀýÓõÄÊÇ´´½¨¶ÔÏóÓï¾ä£º
Set d = CreateObject(\£¬³ÆÎª¡±ºóÆÚ°ó¶¨¡±¡£²»ÐèÒªÏÈÒýÓýű¾ÔËÐÐʱ¿â¡£
2¡¢Set d(Cells(i, 1) & \£º°Ñµ¥Ôª¸ñ¶ÔÏó¼ÓÈë×ֵ䣬Ëü¶ÔÓ¦µÄÏîÊÇͬһÐеĵ¥Ôª¸ñÇøÓò¡£×¢Ò⣬ÕâÀïÓÃÁËSet£¬ºÍÇ°ÃæµÄ¼¸Àý²»Ò»ÑùŶ¡£Èç¹ûÓÃTypename(d(Cells(i, 1) & \£¬µÃµ½µÄÊÇÒ»¸öRange¶ÔÏó¡£ÕâÀïµÄCells(i, 1) & \Ò²¿ÉÒÔÓÃCells(i, 1).ValueÀ´´úÌæ¡£
3¡¢t=d.items £º°Ñ×ÖµädÖдæÔÚµÄËùÓеĹؼü×Ö¶ÔÓ¦µÄÏ¸ø±äÁ¿t¡£µÃµ½µÄÊÇÒ»¸öһάÊý×飬ÏÂÏÞΪ0£¬ÉÏÏÞΪd.Count-1¡£
4¡¢[A11].Resize(d.Count, 4) = Application.Transpose(Application.Transpose(t)) £ºÕâ¾äÓÃÁËÁ½´Î¹¤×÷±íתÖú¯ÊýTransposeÖ®ºó¸³¸øA11µ¥Ôª¸ñ¿ªÊ¼µÄÇøÓòÖС£
´úÂëÖ´ÐкóÈçͼʵÀý5-2Ëùʾ¡£
[A11].Resize(d.Count, 4) = Application.Transpose(Application.Transpose(t))
23
³£¼û×ÖµäÓ÷¨¼¯½õ¼°´úÂëÏê½â
ͼ ʵÀý5-2ʾÀý
ʵÀý6 ¶àÌõ¼þ¸´ÔÓ»ã×Ü
Ò»¡¢ÎÊÌâµÄÌá³ö£º
ÓÐÒ»¸ö±í¸ñ£¬ÐèÒª¶ÔÆäÖжà¸öÌõ¼þÏàͬµÄÊýÁ¿½øÐкϲ¢»ã×Ü£¬²¢ÇÒÒªÓлã×ܵÄÃ÷ϸÊý¾Ý£¬ÒªÇó±àдһ¶Î´úÂ룬ʵÏÖÕâÑùµÄºÏ²¢Í¬ÀàÏîµÄÒªÇó¡£
¶þ¡¢´úÂ룺 Sub kf2() ?by:oobird
Dim d As Object, a, b, j%, w! Dim ss$, n%, x
Me.UsedRange.Offset(3, 0) = \
a = Sheet1.Range(Sheet1.[a4], Sheet1.[i65536].End(xlUp)) Set d = CreateObject(\
24