- ©«¤l
- 5923
- ¥DÃD
- 13
- ºëµØ
- 1
- ¿n¤À
- 5986
- ÂI¦W
- 0
- §@·~¨t²Î
- win10
- ³nÅ骩¥»
- Office 2010
- ¾\ŪÅv
- 150
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW°ò¶©
- µù¥U®É¶¡
- 2010-5-1
- ³Ì«áµn¿ý
- 2022-1-23
        
|
¤£¥Î¦r¨åª«¥óªº¼gªk- Option Explicit
- Sub Ex_«½ÆȤÀ²Õ()
- Dim Rng As Range, Ar(), Arr(), F As Boolean
- Set Rng = Range("A1").CurrentRegion '**Set (³]¥ßª«¥ó):½s¸¹²Õ§O¸ê®ÆÄæ¦ì©Ò¦bªº¦ì¸m
- Application.ScreenUpdating = False '** ¦pªG¶}±Ò¿Ã¹õ§ó·s¡A«h¥»ÄÝ©ÊȬ° True¡C ¥iŪ¼gªº Boolean
- With Cells(1, Columns.Count - 1) '**With :³¯z¦¡·|°w¹ï°õ¦æ¤@¨t¦C³¯z¦¡ªº³æ¤@ª«¥ó
- .CurrentRegion.Clear '**CurrentRegion¶Ç¦^Rangeª«¥ó¡A¥Nªí¥Ø«eªº°Ï°ì¡C ¥Ø«e°Ï°ì¬O«ü¥H¥ô·NªÅ¥Õ¦C¤ÎªÅ¥ÕÄ檺²Õ¦X¬°Ãä¬Éªº½d³ò
- Rng.Columns(2).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Cells(1), Unique:=True '**AdvancedFilte:¶i¶¥¿z¿ï (²Õ§O¤£«½Æ)
- .Range("A:A").Sort Key1:=.Cells(1), Header:=xlYes, Order1:=xlAscending '**Sort ±Æ§Ç(²Õ§O)
- Arr = .Range("A:A").SpecialCells(xlCellTypeConstants).Value '** ²Õ§O (±Æ§Ç«á)¸m¤J°}¦C¤¤
- Ar = Arr
- Ar(1, 1) = "½s¸¹"
- Rng.Copy .Cells '**½Æ»s½s¸¹²Õ§O¸ê®Æ
- .CurrentRegion.Sort Key1:=.Cells(1), Order1:=xlAscending, Key2:=.Cells(1, 2), Header:=xlYes, Order2:=xlAscending '**Sort ±Æ§Ç(1½s¸¹2èʧO)
- Set Rng = .Range("A2") '**Set (³]¥ßª«¥ó): ½Æ»s½s¸¹²Õ§O¸ê®Æ«áªº.Range("A2")¦ì¸m
- End With
- '******«½ÆȤÀ²Õ ****
- F = True '**FÅܼƬ°¥¬ªLÈ(Boolean) : §P©w:½s¸¹¤À²Õ¬O§_«½Æ
- Do While Rng.Range("A2") <> "" '**While °j°é¹B¦æªº±ø¥ó
- With Rng
- If .Range("a1") = .Range("a2") And (.Range("b1") <> .Range("b2") And .Range("b1") <> "" And .Range("b2") <> "") Then
- ' Range("a1") = .Range("a2")**¦P¤@½s¸¹** : And (.Range("b1") <> .Range("b2")**¤£¦PèʧO** And .Range("b1") <> "" And .Range("b2") <> ""
- If F Then '**¤£«½Æ (½s¸¹¤À²Õ)
- F = False '**«½Æ (½s¸¹¤À²Õ)
- ReDim Preserve Ar(1 To UBound(Ar), 1 To UBound(Ar, 2) + 1) '** PreserveÃöÁä¦r, ¥u¯àÅܧó³Ì«á¤@Óºû«×ªº¤j¤p, ¦Ó¥B¤´µM«O¯d°}¦Cªº¤º®e
- Ar(1, UBound(Ar, 2)) = .Value '** ¸m¤J½s¸¹
- Ar(Application.Match(.Range("b1"), Arr, 0), UBound(Ar, 2)) = .Range("b1")
- '**Application.Match(.Range("b1"), Arr, 0) '** ©ó²Õ§O(±Æ§Ç«á)°}¦C¤¤´M§ä ¸Ó²Õ§Oªº¦ì¸m
- End If
- Ar(Application.Match(.Range("b2"), Arr, 0), UBound(Ar, 2)) = .Range("b2")
- End If
- End With
- If Rng <> Rng.Range("A2") Then F = True '**¤£¦Pªº½s¸¹®É,FÅܼƬ°:¤£«½Æ (½s¸¹¤À²Õ)
- Set Rng = Rng.Range("A2") '**Set (³]¥ßª«¥ó) ¤U¤@Ó½s¸¹¦ì¸m
- Loop
- With Range("f1")
- .CurrentRegion.Clear
- .Resize(UBound(Ar, 2), UBound(Ar, 1)) = Application.Transpose(Ar) '**Application.Transpose(Ar): ½Âà(Ar),Ar¬°¤Gºû°}¦C
- End With
- Cells(1, Columns.Count - 1).CurrentRegion.Clear
- Application.ScreenUpdating = True
- End Sub
½Æ»s¥N½X |
|