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

[µo°Ý] µ{¦¡½X¹B¦æ¤@¬q®É¶¡¤§«á·|¥X²{"°O¾ÐÅ餣¨¬",¦³­þÃä¥i¥HÄÀ©ñ°O¾ÐÅé¶Ü?

[µo°Ý] µ{¦¡½X¹B¦æ¤@¬q®É¶¡¤§«á·|¥X²{"°O¾ÐÅ餣¨¬",¦³­þÃä¥i¥HÄÀ©ñ°O¾ÐÅé¶Ü?

¶]¤F¤@¬q®É¶¡¤§«á´N·|¥X²{°O¾ÐÅ餣¨¬,·Q°Ý¤@¤U,¦³­þÃäÁÙ¥i¥H¥[¤JÄÀ©ñ°O¾ÐÅ骺µ{¦¡½X?

ÁÙ¬O¦³­þ¤@¬qµ{¦¡½X¼gªº¤£¦n,¦û¥Î¤F¤Ó¦h°O¾ÐÅé¶Ü?
  1. Sub «ö¶s§Î2_Click() '7*6
  2.     Application.ScreenUpdating = False '¿Ã¹õ
  3.     rrr = Range("BG7")
  4.     If rrr = "" Then MsgBox "©|¥¼¿é¤J°_©l¦C¼Æ!": Exit Sub
  5.     '¨ú¥X³sÄò³z¤ä¼Æ
  6.     losetime = Sheets("7x6").[c7]
  7.     If losetime < 0 Then MsgBox "³z¤ä¤£¥i¬°­t¼Æ!": Call after: Exit Sub
  8.     t1 = Hour(Now()) * 3600 + Minute(Now()) * 60 + Second(Now())
  9.     Dim ar, TestArray() As String, br(), x&, y&, z&, n&, rng2, win_num, aa()
  10.     win_num = 0 '³Ì«á¦¨¥\¬ö¿ýªº²Õ¼Æ
  11.     '²M°£BAÄæ¸ê®Æ
  12.     Sheets("7x6").Columns("Bt:Bt").ClearContents
  13.     Sheets("data").Columns("af:bu").ClearContents
  14.     'Àˬddata¤À­¶¦³´Xµ§¸ê®Æ
  15.     num1 = WorksheetFunction.CountA(Sheets("data").Range("K:K")) / 7
  16.     If num1 < 2 Then MsgBox "¸ê®Æ¤£¨¬°÷!": Exit Sub
  17.     '«Ø¥ßdata¤À­¶ªº°}¦C
  18.     Rng = Sheets("data").[w1].Resize(num1 * 8, 1)
  19.     '¨ú¥X¬ÕÁ«°}¦C
  20.     earn = Sheets("7x6").Range("bg" & rrr).Resize(ED("bg", , "7x6") - rrr + 1, 1).Value
  21.    
  22.    
  23.     '±N°ò¥»±Æ§Ç¿é¤J°}¦C
  24.     ReDim ar(1 To num1, 1 To 1)
  25.     For i = 1 To num1
  26.         ar(i, 1) = Rng((i - 1) * 8 + 1, 1)
  27.     Next
  28.     Dim D As Object
  29.     Set D = CreateObject("SCRIPTING.DICTIONARY")  '¦r¨åª«¥ó
  30.     '¶]¥X±Æ¦C²Õ¦X---------------------------------------------------
  31.     For y = x + 1 To UBound(ar) - 1
  32.         For z = y + 1 To UBound(ar)
  33.             'Àˬd¤»­Ó¤¸¯À¤º®e¬O§_¦³­«½Æ
  34.             reallyname = ar(y, 1) & "_" & ar(z, 1)
  35.             temp = Split(reallyname, "_")
  36.             For i = 0 To 5
  37.                 If Not D.Exists(CStr(temp(i))) Then
  38.                     D.Add CStr(temp(i)), i
  39.                 Else
  40.                     D.RemoveAll: GoTo fn2
  41.                 End If
  42.             Next
  43.             D.RemoveAll
  44.             n = n + 1
  45.             ReDim Preserve br(1 To 2, 1 To n)
  46.             br(1, n) = ar(y, 1)
  47.             br(2, n) = ar(z, 1)
  48. fn2:     Next
  49.     Next
  50.     Set D = Nothing
  51.     Set ar = Nothing
  52.     If n = 0 Then MsgBox "¸g¹L²¾°£­«½Æªº²Õ¦X¤§«á,¨S¦³¥ô¦ó¤@²Õ¥i¥H¦X¦¨7*7*6": Exit Sub
  53.     br = Application.Transpose(br)
  54.     ReDim rng2(1 To 7, 1 To 42)
  55.     '±N²Õ¦X«áªº¤º®e¿é¤J¦Ü°}¦C¤º---------------------------------------------------
  56.     '¶]¨C¤@µ§¥¼¨Óªº±Æ¦C²Õ¦X
  57.     Rng = Sheets("data").[w1].Resize(num1 * 8, 1)
  58.     For i = 1 To UBound(br)
  59.         '¶]2­Ó²Õ¦X
  60.         For j = 1 To 2
  61.             '¶]¨C¤@µ§­ì¥»ªº²Õ¦X
  62.             For K = 1 To UBound(Rng) Step 8
  63.                 '§PÂ_­ì¥»²Õ¦Xªº¥N½X,¬O§_²Å¦X±Æ¦C²Õ¦X¤§«áªº¥N½X
  64.                 If CStr(Rng(K, 1)) = CStr(br(i, j)) Then
  65.                     '«Ø¥ß­ì¥»ªº°}¦C
  66.                     org_rng = Sheets("data").Range("J" & K + 1).Resize(7, 21)
  67.                     '§ä¨ì¥N½X¤§«á,±N­ì¥»ªº°}¦C¤º®e¿é¤J¦Ü·sªº±Æ¦C²Õ¦X°}¦C¤º
  68.                     For L = 1 To 7
  69.                         For M = 1 To 21
  70.                             'L¬O1~7ªº¦C¼Æ,M¬OÄæ¼Æ,K¬O¸Ó½s¸¹ªº¦C¼Æ¦ì¸m
  71.                             rng2(L, M + (j - 1) * 21) = CStr(org_rng(L, M))
  72.                         Next
  73.                     Next
  74.                     Exit For
  75.                 End If
  76.             Next
  77.         Next
  78.         '¨C¶]§¹¤@­Ó§¹¾ãªº7*21²Õ¦X,´N§â¸ê®Æ©ñ¨ì7*3¤À­¶¸Ì­±¶i¦æ¤ñ¹ï-----------------------------
  79.         '©ñ¸m¸ê®Æ
  80.         Sheets("7x6").[I9].Resize(7, 42).Value = rng2
  81.         '¶]¨C¤@µ§¬ÕÁ«
  82.         x = 0 '¥Î¨Ó­pºâ³sÄò´Xµ§³z¤ä
  83.         For j = 1 To UBound(earn)
  84.             If earn(j, 1) = "" Then GoTo fn
  85.             If earn(j, 1) >= 0 Then: x = 0: GoTo fn
  86.             x = x + 1
  87.             If x = losetime Then GoTo f1 '¨ì¹F³z¤ä¼Ð·Ç=>¤£¤©¬ö¿ý,°õ¦æ¤U¤@­Ó²Õ¦X
  88. fn:     Next
  89.         '¥i¥H°õ¦æ¨ì³oÃä,¥Nªí³z¤ä¼Æ¶q¨S¦³¶W¹L,»Ý­n¬ö¿ý½s¸¹²Õ¦X¨ì[ba]¦ì¸m
  90.         win_num = win_num + 1 '¦¨¥\ªº¦¸¼Æ
  91.         Sheets("7x6").Range("Bt" & win_num).Value = win_num & "--" & br(i, 1) & "_" & br(i, 2)
  92.         Sheets("data").Range("as" & (win_num - 1) * 8 + 1).Value = br(i, 1) & "_" & br(i, 2)
  93.         Sheets("data").Range("af" & (win_num - 1) * 8 + 1).Value = win_num
  94.         Sheets("data").Range("af" & (win_num - 1) * 8 + 2).Resize(7, 42).Value = rng2
  95. f1: Next
  96.     T2 = Hour(Now()) * 3600 + Minute(Now()) * 60 + Second(Now())
  97.     MsgBox win_num & "/" & UBound(br) & "(²Õ)¦@¯Ó®É " & T2 - t1 & " ¬í"
  98. End Sub
½Æ»s¥N½X
PKKO

num1 = WorksheetFunction.CountA(Sheets("data").Range("K:K")) / 7

num1 ³Ì¤j­È¥i¥H¨ì¦h¤Ö?

TOP

§Ú¬Oªì¾ÇªÌ §Ú¦³¹J¨ì±z»¡ªº°ÝÃD  §Ú¬O¨Ï¥ÎÁY¤p¨ú¼Ë¦¸¼Æ¤§Á`¤ñ¼Æ«á¥ýÂন­È µM«á¦h°µ´X¦¸¦P¼Ëªº°Ê§@ ¦Ñ¹ê»¡§Ú¤£¤Ó·|ªí¹F·N«ä ½Ð±z°Ñ¦Ò
http://forum.twbts.com/thread-14907-1-1.html
³o©« ±zÀ³¸Ó·|¤ñ¸û®e©öª¾¹D§Ú»¡ªº·N«ä ­Y³y¦¨±zªº¤£®® ÁٽШ£½Ì

TOP

¦^´_ 2# jackyq


    ³Ì¤j300¥H¤º
PKKO

TOP

        ÀR«ä¦Û¦b : ¤H¥Í³Ì¤jªº¦¨´N¬O±q¥¢±Ñ¤¤¯¸°_¨Ó¡C
ªð¦^¦Cªí ¤W¤@¥DÃD