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

[µo°Ý] ¸ê®Æª½¦VÂà¾î¦V±Æ¦C

¥»©«³Ì«á¥Ñ c_c_lai ©ó 2013-1-8 07:27 ½s¿è

¦^´_ 6# GBKEE
¦^´_ 5# Genie
GBKEE ª©¤j¦­¦w¡I
¤µ¦­Åª¤F "¸ê®Æª½¦VÂà¾î¦V±Æ¦C" µoı Idea ¤£¿ù¡A©ó¬O¥G
°£¤F­ì¥ýªº  "AÄæ¡BB Äæ" ¡A§Ú¤S¥[¤J¤F "AB Äæ" ¿ï¶µ¡C
¨Ó¨ú¼Ö¤@¤U¡A½Ð¤Å¨£©Ç¡I(§Ú¥t¼W¥[¤@¤u§@ªí³æ "´ú¸Õµ²ªG")
  1. Sub Ex2()
  2.     Dim D As Object, AR(), Rng As Range, i As Integer, K As Variant, W As String
  3.     Dim cts As Integer, nums As Integer
  4.    
  5.     '  Do
  6.     '      W = InputBox("½Ð¿ï¾Ü: A Äæ§@°Ï¤À ©Î B Äæ§@°Ï¤À")
  7.     '      If W = "" Then Exit Sub                         '  ¨S¿é¤J:Â÷¶}µ{¦¡
  8.     '  Loop Until UCase(W) = "A" Or UCase(W) = "B"
  9.     W = InputBox("½Ð¿ï¾Ü: A Äæ§@°Ï¤À ©Î B Äæ§@°Ï¤À¡B" & vbCrLf & "¥ç©Î¬O AB Äæ§@°Ï¤À")
  10.     If UCase(W) <> "A" And UCase(W) <> "B" And UCase(W) <> "AB" Then Exit Sub   '  ¨S¿é¤J:Â÷¶}µ{¦¡
  11.    
  12.     nums = IIf(UCase(W) = "AB", 2, 1)
  13.     Set D = CreateObject("Scripting.Dictionary")            '  ¦r¨åª«¥ó
  14.    
  15.     For cts = 1 To nums
  16.         Set Rng = Sheets("­ì©l¸ê®Æ").Range("a2")            '  Àx¦s®æª«¥ó
  17.         
  18.         Do
  19.            If UCase(W) = "AB" Then
  20.                 K = IIf(cts = 1, Rng.Value, "'" & Rng & " - " & Rng.Cells(1, 2))
  21.             Else
  22.                 K = IIf(UCase(W) = "A", Rng.Value, "'" & Rng & " - " & Rng.Cells(1, 2))
  23.             End If
  24.                
  25.             If D.exists(K) Then                             '  ¦r¨åª«¥ó.exists(Rng.Value) ÃöÁä¦r[¦s¦b] ±ø¥ó¦¨¥ß
  26.                 AR = D(K)                                   '  °}¦C=¦r¨åª«¥ó(ÃöÁä¦r)ªº¤º®e
  27.                 ReDim Preserve AR(UBound(D(K)) + 1)         '  °}¦CÂX¥R¼W¥[¤@¤¸¯À
  28.                 AR(UBound(AR)) = Rng.Cells(1, 3).Value      '  °}¦C¼W¥[ªº¤¸¯À=CÄ檺¼Æ­È
  29.                 D(K) = AR                                   '  ¦r¨åª«¥ó(ÃöÁä¦r)ªº¤º®e=°}¦C
  30.             Else
  31.                 D(K) = Array(Rng.Cells(1, 3).Value)         '  ¦r¨åª«¥ó(ÃöÁä¦r)ªº¤º®e=°}¦C
  32.             End If
  33.             Set Rng = Rng.Offset(1)
  34.         Loop Until Rng = ""
  35.     Next
  36.             
  37.     With Sheets("´ú¸Õµ²ªG")
  38.         .Cells.Clear
  39.             
  40.         If D.Count > 0 Then
  41.             i = 1
  42.             For Each K In D.keys                            '  K = ¦r¨åª«¥ó(ÃöÁä¦r)
  43.                 .Cells(1, i) = K
  44.                 .Cells(2, i).Resize(UBound(D(K)) + 1) = Application.WorksheetFunction.Transpose(D(K))  '  Åª¨ú¤º®e
  45.                 i = i + 1
  46.             Next
  47.         End If
  48.     End With
  49. End Sub
½Æ»s¥N½X

TOP

¦^´_ 11# Hsieh
¦^´_ 14# Genie
Hsieh ª©¤j·s¦~´r§Ö¡I
¸g´ú¸Õµo²{¦³ÂI¤p·åÒ¯¡A­×§ï¤F¤@ÂI
  1. '  s = Application.CountIf(.Range(A, A.End(xlDown)), A)
  2. s = Application.CountIf(.Range("A" & j, .[A2].End(xlDown)), .Cells(j, "A"))
½Æ»s¥N½X
¹Lµ{¦pªþ¹Ï¡G

TOP

        ÀR«ä¦Û¦b : §g¤l¥ß«í§Ó¡A¤p¤H«í¥ß§Ó¡C
ªð¦^¦Cªí ¤W¤@¥DÃD