³£¼û×ÖµäÓ÷¨¼¯½õ¼°´úÂëÏê½â£¨È«£© - À¶ÇÅÐþ˪ - ͼÎÄ

ʵÀý1 ÆÕͨ³£¼ûµÄÇó²»Öظ´ÖµÎÊÌâ

CompareModeÊôÐÔ

ÉèÖûòÕß·µ»ØÔÚ Dictionary ¶ÔÏóÖнøÐÐ×Ö·û´®¹Ø¼ü×ֱȽÏʱËùʹÓõıȽÏģʽ¡£ object.CompareMode[ = compare] ²ÎÊý object

±ØÑ¡Ïî¡£×ÜÊÇÒ»¸ö Dictionary ¶ÔÏóµÄÃû³Æ¡£ compare

¿ÉÑ¡Ïî¡£Èç¹ûÌṩÁË´ËÏcompare ¾ÍÊÇÒ»¸ö´ú±í±È½ÏģʽµÄÖµ¡£¿ÉÒÔʹÓõÄÖµÊÇ 0 (¶þ½øÖÆ)¡¢1 (Îı¾), 2 (Êý¾Ý¿â)¡£

˵Ã÷

Èç¹ûÊÔͼ¸Ä±äÒ»¸öÒѾ­°üº¬ÓÐÊý¾ÝµÄ Dictionary ¶ÔÏóµÄ±È½Ïģʽ£¬ÄÇô½«µ¼ÖÂÒ»¸ö´íÎó¡£

³£ÓÃÓï¾ä£º Dim d

Set d = CreateObject(\ d.CompareMode = vbTextCompare d.Add \ d.Add \ d.Add \

d.Add \´úÂëÏê½â

1¡¢d.CompareMode = vbTextCompare £ºÉèÖÃ×ÖµäµÄ±È½ÏģʽÊÇÎı¾£¬ÔÚÕâÖֱȽÏģʽϲ»Çø·Ö¹Ø¼ü×ֵĴóСд£¬¼´¹Ø¼ü×Ö¡±b¡±ºÍ¡±B¡±ÊÇÒ»ÑùµÄ¡£vbTextCompareµÄֵΪ1£¬ËùÒÔÉÏʽҲ¿ÉдΪ d.CompareMode =1 ¡£Èç¹ûÉèÖÃΪvbBinaryCompare£¨ÖµÎª0£©£¬ÔòÖ´Ðжþ½øÖƱȽϣ¬¼´Çø·Ö¹Ø¼ü×ֵĴóСд£¬´ËÖÖÇé¿öϹؼü×Ö¡±b¡±ºÍ¡±B¡±±»ÈÏΪÊDz»Ò»ÑùµÄ¡£

2¡¢d.Add \£ºÌí¼ÓÒ»¹Ø¼ü×Ö¡±B¡±ºÍ¶ÔÓ¦ÓÚËüµÄÏBaltimore¡±¡£ÓÉÓÚÇ°ÃæÒѾ­ÉèÖÃÁ˱ȽÏģʽΪÎı¾Ä£Ê½£¬²»Çø·Ö¹Ø¼ü×ֵĴóСд£¬¼´¹Ø¼ü×Ö¡±b¡±ºÍ¡±B¡±ÊÇÒ»ÑùµÄ£¬´Ëʱ·¢Éú´íÎóÌí¼Óʧ°Ü£¬ÒòΪ×ÖµäÖÐÒѾ­´æÔÚ¡±b¡±ÁË£¬×ÖµäÖеĹؼü×ÖÊÇΨһµÄ£¬²»ÄÜÌí¼ÓÖØ¸´µÄ¹Ø¼ü×Ö¡£

ʵÀý1 ÆÕͨ³£¼ûµÄÇó²»Öظ´ÖµÎÊÌâ

Ò»¡¢ÎÊÌâµÄÌá³ö£º

±í¸ñÖÐÈËÔ±ÓкܶàÊÇÖØ¸´µÄ£¬ÒªÇó±àдһ¶Î´úÂ룬°ÑÖØ¸´µÄÈËÔ±ÐÕÃûÒÔ¼°Öظ´µÄ´ÎÊýÇó³öÀ´£¬¸´ÖƵ½ÁíÒ»¸ö±í¸ñÖС£

ÈçͼʵÀý1£­1Ëùʾ¡£

9

³£¼û×ÖµäÓ÷¨¼¯½õ¼°´úÂëÏê½â

ÂÛÌ³ÍøÖ·£ºhttp://club.excelhome.net/thread-637004-1-1.html

ͼ ʵÀý1-1

¶þ¡¢´úÂ룺 Sub cfz()

Dim i&, Myr&, Arr Dim d, k, t

Set d = CreateObject(\Myr = Sheet1.[a65536].End(xlUp).Row Arr = Sheet1.Range(\& Myr) For i = 2 To UBound(Arr) d(Arr(i, 3)) = d(Arr(i, 3)) + 1 Next k = d.keys t = d.items Sheet2.Activate

10

ʵÀý1 ÆÕͨ³£¼ûµÄÇó²»Öظ´ÖµÎÊÌâ

[a2].Resize(d.Count, 1) = Application.Transpose(k) [b2].Resize(d.Count, 1) = Application.Transpose(t) [a1].Resize(1, 2) = Array(\ÐÕÃû\\ÖØ¸´¸öÊý\Set d = Nothing End Sub

Èý¡¢´úÂëÏê½â

1¡¢Dim i&, Myr&, Arr £º±äÁ¿iºÍMyrÉùÃ÷Ϊ³¤ÕûÐͱäÁ¿¡£ Ò²¿ÉÒÔдΪ Dim Myr As Long ¡£Long µÄÀàÐÍÉùÃ÷×Ö·ûΪ(&)¡£ArrºóÃæÃ»ÓÐдÃ÷Êý¾ÝÀàÐÍ£¬Ä¬ÈϾÍÊǿɱäÐÍÊý¾ÝÀàÐÍ(Variant)¡£

2¡¢Set d = CreateObject(\£º´´½¨×Öµä¶ÔÏ󣬲¢°Ñ×Öµä¶ÔÏ󸳸ø±äÁ¿d¡£ÕâÊÇ×î³£ÓõÄÒ»¾ä´úÂë¡£ËùνµÄ¡°ºóÆÚ°ó¶¨¡±¡£ÓÃÁËÕâ¾ä´úÂë¾Í²»ÓÃÏÈÒýÓÃc:\\windows\\system32\\scrrun.dllÁË¡£

3¡¢Myr = Sheet1.[a65536].End(xlUp).Row £º°Ñ±í1µÄAÁÐ×îºóÒ»Ðв»Îª¿Õ°×µÄÐÐÊý¸³¸ø±äÁ¿Myr¡£ÕâÀïÓÃÁËRange¶ÔÏóµÄEndÊôÐÔ£¬ËüÓÐ4¸ö·½Ïò²ÎÊý£¬´Ë´¦µÄxlUp±íʾÏòÉÏ£¬ËüµÄֵΪ3£¬ËùÒÔÒ²¿Éд³ÉEnd(3)¡£xlDown±íʾÏòÏ£¬ËüµÄֵΪ4£»xlToLeft±íʾÏò×ó£¬ËüµÄֵΪ1£»xlToRight±íʾÏòÓÒ£¬ËüµÄֵΪ2¡£

4¡¢Arr = Sheet1.Range(\& Myr)£º°Ñ±í1µÄA1µ½GÁÐ×îºóÒ»Ðв»Îª¿Õ°×µÄ µ¥Ôª¸ñÇøÓòµÄÖµ¸³¸ø±äÁ¿Arr¡£ÕâÑùArr¾ÍÊǸö¶þάÊý×éÁË£¬ÓÃÊý×éÌæ´úµ¥Ôª¸ñÒýÓÿɶÔÖ´ÐдúÂëµÄËÙ¶ÈÌá¸ßºÜ¶àºÜ¶à¡£

5¡¢For i = 2 To UBound(Arr) £ºFor¡­NextÑ­»·½á¹¹£¬´Ó2¿ªÊ¼µ½Êý×éµÄ×î´óÉϽçÖµÖ®¼äÑ­»·¡£ÒòΪÊý×éµÄµÚÒ»ÐÐÊDZíÍ·¡£UboundÊÇVBAº¯Êý£¬·µ»ØÊý×éµÄÖ¸¶¨Î¬ÊýµÄ×î´ó¿ÉÓÃÉϽ硣

6¡¢d(Arr(i, 3)) = d(Arr(i, 3)) + 1 £ºArr(i,3)ÔÚ±¾ÀýÊÇÐÕÃûÁУ¬Ò²¾ÍÊǹؼü×ÖÁУ¬¾Ù¸öÀý×Ó£¬¼ÙÈçArr(i,3)=¡±ÕÅÈý¡±£¬Õâ¾ä´úÂëµÄÒâ˼¾ÍÊǰѹؼü×Ö¡±ÕÅÈý¡±¼ÓÈë×ֵ䣬d(key)µÈÓڹؼü×Ökey¶ÔÓ¦µÄÏÿ³öÏÖÒ»´ÎÕâ¸ö¹Ø¼ü×Ö£¬ËüµÄÏîµÄÖµ¾ÍÔö¼Ó1¡£Æðµ½Á˰´¹Ø¼ü×ÖÀÛ¼ÓµÄ×÷Óã¬Ò²ÕýÒòΪÓÐÕâ¸ö×÷Óã¬ËùÒÔ¿ÉʹÓÃ×ÖµäÀ´½øÐи÷ÖÖ»ã×Üͳ¼Æ¡£ºóÃæÒª½²µÄʵÀý»á³ä·ÖµÄÕ¹ÏÖÕâ¸ö×÷Óá£

7¡¢k=d.keys £º°Ñ×ÖµädÖдæÔÚµÄËùÓеĹؼü×Ö¸³¸ø±äÁ¿k¡£µÃµ½µÄÊÇÒ»¸öһάÊý×飬ÏÂÏÞΪ0£¬ÉÏÏÞΪd.Count-1¡£KeysÊÇ×ÖµäµÄ·½·¨£¬Ç°ÃæÒѾ­½²¹ýÁË¡£

8¡¢t=d.items £º°Ñ×ÖµädÖдæÔÚµÄËùÓеĹؼü×Ö¶ÔÓ¦µÄÏ¸ø±äÁ¿t¡£µÃµ½µÄÒ²ÊÇÒ»¸öһάÊý×飬ÏÂÏÞΪ0£¬ÉÏÏÞΪd.Count-1¡£ItemsÒ²ÊÇ×ÖµäµÄ·½·¨£¬Ç°ÃæÒ²ÒѾ­½²¹ýÁË¡£

9¡¢Sheet2.Activate £º¼¤»î±í2¡£

10¡¢[a2].Resize(d.Count, 1) = Application.Transpose(k) £º°Ñ×ÖµädÖÐËùÓеĹؼü×Ö¸³¸øÒÔa2µ¥Ôª¸ñ¿ªÊ¼µÄµ¥Ôª¸ñÇøÓòÖС£ÏêϸµÄ½âÊÍÇë¼ûÇ°ÃæµÄkeys·½·¨Ò»½Ú¡£

11¡¢[b2].Resize(d.Count, 1) = Application.Transpose(t) £º°Ñ×ÖµädÖÐËùÓеĹؼü×Ö¶ÔÓ¦µÄÏ¸øÒÔb2µ¥Ôª¸ñ¿ªÊ¼µÄµ¥Ôª¸ñÇøÓòÖС£

11

³£¼û×ÖµäÓ÷¨¼¯½õ¼°´úÂëÏê½â

12¡¢[a1].Resize(1, 2) = Array(\ÐÕÃû\ÖØ¸´¸öÊý\£ºArrayÊÇÒ»¸öVBAº¯Êý£¬·µ»ØÒ»¸öϽçΪ0µÄһάÊý×顣һάÊý×é¿ÉÒÔ¿´×÷ÊÇˮƽÅÅÁеģ¬ËùÒÔ¸³Öµ¸øË®Æ½µÄµ¥Ôª¸ñÇøÓò²»ÐèÒªÓÃתÖú¯ÊýÁË¡£ÕâÀï×÷Ϊ±íÍ·Ò»´ÎÐÔÊäÈë¡£

13¡¢Set d = Nothing £ºÊÍ·Å×ÖµäÄÚ´æ¡£

´úÂëÖ´ÐкóÈçͼʵÀý1-2Ëùʾ¡£

ͼ ʵÀý1-2

ʵÀý2 Çó¶à±íµÄ²»Öظ´ÖµÎÊÌâ

Ò»¡¢ÎÊÌâµÄÌá³ö£º

Ò»¹¤×÷²¾ÀïÃæÓÐ3ÕŹ¤×÷±íÉÏ£¬Ã¿Õűí¸ñµÄAÁж¼ÊÇÐÕÃûÁУ¬ËùÓÐÕâЩÐÕÃûÖÐÓÐЩÊÇÖØ¸´µÄ£¬ÒªÇó±àдһ¶Î´úÂ룬ÔÚÁíÒ»¸ö¹¤×÷±íÉÏÏÔʾ²»Öظ´µÄÐÕÃû¡£

ÈçͼʵÀý2£­1Ëùʾ¡£

12

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)