ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

½Ð°Ý:excel§Ö³t¦X¨ÖÀx¦s®æ

½Ð°Ý:excel§Ö³t¦X¨ÖÀx¦s®æ

½Ð°Ý,¦p¦ó±Nªþ¥ó¥ªÃ䪺¸ê®Æ¥i¥H§Ö³t¦X¨Ö¦¨¥k¤âÃ䪺¸ê®Æ,ÁÂÁÂ

Book2.zip (6.98 KB)

Jessica

¦^´_ 7# jessicamsu
Hsieh «e½úªº Idea «D±`´Î¡A§Ú±N¥¦µyµy­×¹¢¤F¤@¤U¡A
§Y¥ý±N A2:C28 ªº¤º®e½Æ»s¨ì E2:G28 «á¦A³B²z¤ÀªR¡A
¥H©ú½T¬Ý±o¥X¨Óµ{¦¡¬O¦p¦ó°õ¦æ³B²zªº¡C
¦P®É¸É¤W¤F ky ªºÅܼƫŧi¡C
  1. Sub ex()
  2.     Dim ky As Variant
  3.    
  4.     Set d = CreateObject("Scripting.Dictionary")
  5.     Application.DisplayAlerts = False
  6.    
  7.     [A2:C28].Copy Destination:=[E2]
  8.    
  9.     For i = 7 To 5 Step -1
  10.         For Each a In Range(Cells(2, i), Cells(Rows.Count, i).End(xlUp))
  11.             mystr = a & a.Offset(, IIf(i = 5, 0, -1))
  12.             If IsEmpty(d(mystr)) Then
  13.                 Set d(mystr) = a
  14.             Else
  15.                 Set d(mystr) = Union(d(mystr), a)
  16.             End If
  17.         Next
  18.         For Each ky In d.keys
  19.             d(ky).Merge
  20.         Next
  21.         d.RemoveAll
  22.     Next
  23.    
  24.     Application.DisplayAlerts = True
  25. End Sub
½Æ»s¥N½X
§Ö³t¦X¨ÖÀx¦s®æ.rar (8.14 KB)

TOP

¦^´_ 7# jessicamsu
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Application.DisplayAlerts = False
  4. For i = 3 To 1 Step -1
  5.    For Each a In Range(Cells(2, i), Cells(Rows.Count, i).End(xlUp))
  6.    mystr = a & a.Offset(, IIf(i = 1, 0, -1))
  7.       If IsEmpty(d(mystr)) Then
  8.          Set d(mystr) = a
  9.          Else
  10.          Set d(mystr) = Union(d(mystr), a)
  11.       End If
  12.     Next
  13.     For Each ky In d.keys
  14.     d(ky).Merge
  15.     Next
  16.     d.RemoveAll
  17. Next
  18. Application.DisplayAlerts = True
  19. End Sub
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

cÄ椣¯à¯Ç¤J´`Àô¤¤¾Þ§@
  1. Sub test()
  2.     Dim c%, n%, i%, r%
  3.     Application.DisplayAlerts = False
  4.     n = [a65536].End(xlUp).Row
  5.     For c = 1 To 2
  6.         r = 2
  7.         For i = 2 To n
  8.             If Cells(i, c) <> Cells(i + 1, c) Then
  9.                 If r < i Then Range(Cells(r, c), Cells(i, c)).Merge
  10.                 r = i + 1
  11.             End If
  12.         Next
  13.     Next
  14.     For r = 2 To n
  15.         If Cells(r, 2).MergeCells Then
  16.             a = Cells(r, 2).MergeArea.Address
  17.             s = Split(a, "$")
  18.             For k = Val(s(2)) To Val(s(4))
  19.                 Do While Cells(k, 3).Offset(j, 0) = Cells(k, 3) And k + j <= Val(s(4))
  20.                     j = j + 1
  21.                 Loop
  22.                 If j > 1 Then
  23.                     Cells(k, 3).Resize(j).Merge
  24.                     k = k + j - 1
  25.                     j = 1
  26.                 End If
  27.             Next
  28.             r = k - 1
  29.         End If
  30.     Next
  31. End Sub
½Æ»s¥N½X

TOP

¦^´_ 5# chin15

ÁÂÁÂchin15 ¤j¤j,¦ý¸g´ú¸Õ«á,CÄæ¨S¦³¦X¨Ö­C

±NC§ï¬°c = 1 To 3, ¦ýCÄæ¶À¦â³¡¥÷·|¦³°ÝÃD,¥¿½TÀ³¸Ó­n¹³¥k¤âÃä¤@¼Ë@@
[attach]12415[/attach]
Jessica

TOP

ÁÂÁÂchin15 ¤j¤j,¦ý¸g´ú¸Õ«á,CÄæ¨S¦³¦X¨Ö­C,¤£¦n·N«ä,¦A³Â·Ð±zÀ°¦£¤@¤U
Jessica

TOP

À³¸Ó¬O·Q½m²ß´`Àô§a¡H°Ñ¦Ò
  1. Sub test()
  2.     Dim c%, n%, i%, r%
  3.     Application.DisplayAlerts = False
  4.     n = [a65536].End(xlUp).Row
  5.     For c = 1 To 2
  6.         r = 2
  7.         For i = 2 To n
  8.             If Cells(i, c) <> Cells(i + 1, c) Then
  9.                 If r < i Then Range(Cells(r, c), Cells(i, c)).Merge
  10.                 r = i + 1
  11.             End If
  12.         Next
  13.     Next
  14. End Sub
½Æ»s¥N½X

TOP

¦^´_ 3# jessicamsu
¥ý¥Î¼Ï¯Ã°µ¥X§Aªº®æ¦¡¡A¦A½Æ»s¶K¤W´N¥i¥H
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¼Ó¤Wªº¤j¤j¥ýÁÂÁÂ,¦ý§Ú¦]¬°­n¶K¦b¥t¤@­Ósheet¨Ã»P¨ä¥L¸ê®Æ·J¾ã,©Ò¥H¼Ï¯Ã¨Ã¤£¾A¦X,ÁÂÁÂ
Jessica

TOP

¥Î¼Ï¯Ã¤ÀªRªí
1

µû¤À¤H¼Æ

TOP

        ÀR«ä¦Û¦b : ¡i®É¤é²öªÅ¹L¡j¤@­Ó¤H¦b¥@¶¡°µ¤F¦h¤Ö¨Æ¡A´Nµ¥©ó¹Ø©R¦³¦hªø¡C¦]¦¹¥²¶·»P®É¶¡Ävª§¡A¤Á²ö¨Ï®É¤éªÅ¹L¡C
ªð¦^¦Cªí ¤W¤@¥DÃD