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

ʵÀý10 ÏÈ×ÖµäÇóµÃÐкóÏÔʾÕûÐÐÊý¾Ý

9¡¢[e2].Resize(d.Count, 1) = Application.Transpose(d.items) £º°Ñ×ÖµäËùÓеÄÏîתÖÃÒԺ󸳸øE2µ¥Ôª¸ñ¿ªÊ¼µÄÇøÓò¡£

10¡¢For Each rng In [e2].Resize(d.Count, 1) £ºFor- Each-Next¿ØÖƽṹÊÇVBAÖй¦ÄÜ×îÇ¿µÄÑ­»·¿ØÖƽṹ£¬ÀûÓÃÕâ¸ö½á¹¹¿É¶Ô¼¯ºÏÖеÄËùÓжÔÏó»òÕßÊý×éÖеÄËùÓÐÔªËؽøÐÐͬһ²Ù×÷¡£ËüµÄÒ»¸öÓŵãÔÚÓÚÄã²»±Ø²ÙÐÄÑ­»·Ó¦¸ÃÖ´ÐжàÉٴΣ¬ËüÑ­»·µÄ´ÎÊýÇ¡ºÃ¾ÍÊÇÊý×éÖÐÔªËصĸöÊý£¨»òÕß¼¯ºÏÖжÔÏóµÄ¸öÊý£©£¬Òò´Ë¶ÔÓÚ´¦Àí¶àάÊý×éÌرðÊÇ´¦Àí¶ÔÏóʱ×îÓÐЧÂÊ¡£±¾¾äÒâ˼ÊÇÔÚE2µ¥Ôª¸ñ¿ªÊ¼µÄµ¥Ôª¸ñÇøÓòÖÐÖðһѭ»·¡£

11¡¢rng.Resize(1, 3) = Cells(rng, 1).Resize(1, 3).Value £º°Ñ¹Ø¼ü×ÖËùÔÚÐеÄ3¸öµ¥Ôª¸ñµÄÖµ¸³¸ørng¿ªÊ¼µÄ3¸öµ¥Ôª¸ñ¡£ÔÚCells(rng, 1)ÖÐ×÷Ϊ²ÎÊýµÄrng£½rng.Valur£¬¶ørng.Resize(1, 3)´¦µÄrngÊÇÒ»¸öµ¥Ôª¸ñ¶ÔÏó¡£

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

ͼ ʵÀý10-2ʾÀý

41

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

ʵÀý11 ¹Ø¼ü×Ö¸³¸øÁ½ÁкóÓÃReplace·½·¨

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

ÓÐÈçͼʵÀý11-1ËùʾµÄ¹¤×Ê±í£¬ÒªÇó±àдһ¶Î´úÂ룬ÔËÓÃVBA×Ô¶¯Éú³É1¼¾¶ÈµÄ¹¤×Ê±í¡£

½âÌâ˼·£ºÏÈ°ÑÐÔ±ðºÍÐÕÃûÁ¬ÆðÀ´×÷Ϊ¹Ø¼ü×ÖÇóµÃÈËÔ±µÄ²»Öظ´Öµ£¬È»ºóͨ¹ýÑ­»·²éÕҹؼü×Ö»ñµÃÆä¸÷ԵŤ×Ê£¬×îºóÓÃReplace·½·¨Ìæ»»Á½Áйؼü×ÖÇøÓòµÃµ½¸÷×ÔµÄÊý¾Ý¡£

´úÂëÖ´ÐÐÇ°ÈçͼʵÀý11-1Ëùʾ¡£

ͼ ʵÀý11-1ʾÀý

42

ʵÀý11 ¹Ø¼ü×Ö¸³¸øÁ½ÁкóÓÃReplace·½·¨

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

Dim d, k, t, i&, j&, Arr, x, r1

Set d = CreateObject(\Arr = [a1].CurrentRegion

For i = 1 To UBound(Arr, 2) Step 3 For j = 2 To UBound(Arr) If Arr(j, i) <> \Then

x = Arr(j, i) & \& Arr(j, i + 1) d(x) = \ End If Next Next k = d.keys

[a12:i1000].ClearContents

[a13].Resize(d.Count, 2) = Application.Transpose(k) [a12:b12] = Array(\ÐÔ±ð\\ÐÕÃû\For i = 3 To UBound(Arr, 2) Step 3 Cells(12, 2 + i / 3) = Cells(1, i) Next

For i = 3 To UBound(Arr, 2) Step 3 For j = 2 To UBound(Arr) If Arr(j, i) <> \Then

x = Arr(j, i - 2) & \& Arr(j, i - 1) Set r1 = [a13].Resize(d.Count, 1).Find(x, , , 1) Cells(r1.Row, 2 + i / 3) = Arr(j, i) End If Next Next

[a13].Resize(d.Count, 1).Replace \\xlPart [b13].Resize(d.Count, 1).Replace \\xlPart End Sub

43

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

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

1¡¢Arr = [a1].CurrentRegion £º°Ñº¬ÓÐA1µ¥Ôª¸ñµÄµ±Ç°µ¥Ôª¸ñÇøÓòµÄÖµ¸³¸ø±äÁ¿Arr¡£CurrentRegionÊÇRange¶ÔÏóµÄÊôÐÔ£¬µ±Ç°ÇøÓòÖ¸ÒÔÈÎÒâ¿Õ°×Ðм°¿Õ°×ÁеÄ×éºÏΪ±ß½çµÄÇøÓò¡£Èç±¾ÌâA11µ¥Ôª¸ñÓÐÊý¾Ý£¬µ«ÊÇÒòΪµÚ10ÐÐÊÇ¿Õ°×ÐУ¬ËùÒÔûÓаüº¬ÔÚA1µÄµ±Ç°ÇøÓòÀïÃæ¡£

2¡¢For i = 1 To UBound(Arr, 2) Step 3 £ºFor-Next¿ØÖƽṹ£¬´Ó1 µ½Êý×éµÚ2άµÄ×î´óÉϽçÿ¸ô3½øÐÐÒ»´ÎÑ­»·£¬Step 3ÊÇÑ­»·µÄ²½³¤£¬µÚÒ»´ÎÑ­»·Ê±i=1£»µÚ2´ÎÑ­»·Ê±i=1+3=4£¬µÚ3´Îʱi=4+3=7¡£

3¡¢For j = 2 To UBound(Arr) £º´ÓµÚ2ÐпªÊ¼Ñ­»·¡£Ã»ÓÐStepʱĬÈÏStepΪ1¡£ 4¡¢If Arr(j, i) <> \ £ºIf-Then-Else¿ØÖƽṹ¿É¸ù¾Ý²âÊÔÌõ¼þµÄ½á¹û¸Ä±ä³ÌÐòÖ´ÐеÄÁ÷³Ì¡£±¾¾ä²âÊÔÌõ¼þÊÇArr(j, i) <> \£¬ÅжÏÐÔ±ðÊÇ·ñΪ¿Õ°×£¬Èç¹û²»Îª¿Õ°×ÔòÖ´ÐÐÏÂÃæµÄÓï¾ä£¬·ñÔò£¬Ö´ÐÐElseÏÂÃæµÄÓï¾ä¡£

5¡¢x = Arr(j, i) & \£º°ÑÐÔ±ðºÍÐÕÃûÖмä¼Ó¡°|¡±Á¬ÆðÀ´¸³¸ø±äÁ¿x¡£ 6¡¢d(x) = \ £º°ÑxµÄÖµ×÷Ϊ¹Ø¼ü×Ö¼ÓÈë×Öµäd¡£±ÈÈç°Ñ¡±ÄÐ|ÕÔ¡± ¼ÓÈë×Öµäd¡£ÕâÁ½¸öÑ­»·°Ñÿ¸öÔµÄËùÓеÄÈËÔ±¶¼¼ÓÈëÁË×Öµäd£¬×ÖµäÖеÄÈËÔ±ÊÇûÓÐÖظ´µÄ¡£ 7¡¢k = d.keys £º°Ñ×ÖµädËùÓеĹؼü×Ö¸³¸ø±äÁ¿k¡£

8¡¢[a12:i1000].ClearContents £ºÇå¿ÕA12£ºI1000µ¥Ôª¸ñÇøÓò¡£

9¡¢[a13].Resize(d.Count, 2) = Application.Transpose(k) £º°Ñ±äÁ¿kתÖÃÖ®ºó¸³¸øA13¿ªÊ¼µÄµ¥Ôª¸ñÇøÓò¡£ResizeÊÇRange¶ÔÏóµÄÊôÐÔ£¬µ÷ÕûÖ¸¶¨ÇøÓòµÄ´óС£¬ÆäµÚ1¸ö²ÎÊýÊÇÐеĴóС£¬d.Count±íʾ×Öµä¹Ø¼ü×ÖµÄÊýÁ¿£¬Èç¹ûÓÐ10¸ö¹Ø¼ü×Ö£¬ÄÇô¾ÍÊÇ10ÐУ»ÆäµÚ2¸ö²ÎÊýÊÇÁеĴóС£¬Ò»°ãÊǸ³¸ø1Áеģ¬±¾Àý¹Ø¼ü×ÖÓÉÁ½¸öÊý¾ÝºÏ²¢¶ø³É£¬ËùÒÔÏȸ³¸ø2ÁУ¬ºóÃæÔÙ´¦Àí¡£

10¡¢[a12:b12] = Array(\ÐÔ±ð\\ÐÕÃû\ £ºArrayÊÇÒ»¸öVBAº¯Êý£¬·µ»ØÒ»¸öϽçΪ0µÄһάÊý×顣һάÊý×é¿ÉÒÔ¿´×÷ÊÇˮƽÅÅÁеģ¬ÕâÀï×÷Ϊ±íÍ·Ò»´ÎÐÔÊäÈë¡£ 11¡¢For i = 3 To UBound(Arr, 2) Step 3 £º´ÓµÚ3ÁпªÊ¼Ñ­»·£¬²½³¤Îª3¡£ 12¡¢Cells(12, 2 + i / 3) = Cells(1, i) £º°Ñ¡°1Ô¹¤×Ê¡°¡¢¡°2Ô¹¤×Ê¡°µÈÊäÈëµ½ÏàÓ¦±íÍ·µÄλÖá£

13¡¢Set r1 = [a13].Resize(d.Count, 1).Find(x, , , 1) £ºÔÚA13µ¥Ôª¸ñ¿ªÊ¼µÄÇøÓòÖвéÕÒ×Ö·û´®±äÁ¿x£¬Find·½·¨ÊÇRange¶ÔÏóµÄÒ»¸ö·½·¨£¬ÆäÖеÚ4¸ö²ÎÊýֵΪ1£¬Æä³£Á¿ÎªxlWhole£¬±íʾ¾«È·²éÕÒ£¬ÁíÒ»¸ö³£Á¿ÎªxlPart£¬ËüµÄÖµ£½2¡£Find·½·¨·µ»ØµÄÊÇRange¶ÔÏó£¬ËùÒÔÇ°ÃæÒªÓÃSetÓï¾äÀ´ÒýÓöÔÏó¡£

14¡¢Cells(r1.Row, 2 + i / 3) = Arr(j, i) £º°Ñ¹Ø¼ü×Ö¶ÔÓ¦µÄ¹¤×ʸ³¸øÏàÓ¦µÄµ¥Ôª¸ñÀï¡£ 15¡¢[a13].Resize(d.Count, 1).Replace \\xlPart £ºReplace·½·¨ÊÇRange¶ÔÏóµÄÒ»¸ö·½·¨£¬ÆäµÚ1¸ö²ÎÊýÊÇÒª²éÕÒµÄ×Ö·û´®£¬ÕâÀï\ÊÇÊúÏß¼°ºóÃæËùÓеÄ×Ö·û´®£»ÆäµÚ2¸ö²ÎÊýÊÇÌæ»»×Ö·û´®£¬ÕâÀïÌ滻Ϊ¿Õ£»ÆäµÚ3¸ö²ÎÊýÊǾ«È·²éÕÒ»¹ÊÇÄ£ºý²éÕÒ£¬xlPart³£Á¿µÄÖµ£½2£¬¿ÉÒÔÓÃ2´úÌæËü¡£±¾¾äÊÇ°ÑÐÕÃûÌæ»»µô£¬Ö»ÁôÏÂÐÔ±ð£»ÏÂÒ»¾ä°ÑBÁÐÖеÄÐÔ±ðÌæ»»µô£¬Ö»ÁôÏÂÐÕÃû¡£ ´úÂëÖ´ÐкóÈçͼʵÀý11-2Ëùʾ¡£

44

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ì滻Ϊ@)