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

[µo°Ý] ­pºâ®M¸Ë©Ò±oªº¯Å§O

¦^´_ 4# ­ã´£³¡ªL

ÁÂÁ­㴣³¡ªL¥ý¶i¦^ÂÐ, ½Ð°Ý·í¯Å§O=Âù¦ì¼Æ©Î­t¼Æ,¨Ò¦p¥H¤U¦p¦ó§ó§ï:
For Each A In Array("1.2¨}ÀuÀu¨}", "2.19Àu¨}¨}Àu", "3.3¨}ÀuÀuÀu", "4.3Àu¨}¨}¨}", "5.3¨}Àu¨}", "6.3Àu¨}Àu", "7.-3ÀuÀu", "8.-19¨}¨}")
    xD(Mid(A, 4)) = Val(A)

TOP

8­Ó¯Å§O//¼Ð¥Ü8­ÓÃC¦â
Xl0000131.rar (32.28 KB)

TOP

L1 ~ L4 ¥|­Ó"¨}"¬°¦ó¤£½s½X, ¦Ü¤Ö¦³­Ó"¨}¨}"²Å¦X§a!!!

TOP

  1. Option Explicit

  2. Sub ­pºâ®M¸Ë¯Å§O()
  3.     Dim ws As Worksheet
  4.     Set ws = ThisWorkbook.ActiveSheet
  5.    
  6.     Dim lastRow As Long
  7.     lastRow = ws.Cells(ws.Rows.Count, "L").End(xlUp).Row
  8.    
  9.     Dim i As Long
  10.     Dim score As String
  11.     Dim skip As Boolean
  12.     Dim combinations As Variant
  13.     Dim scores As Variant
  14.    
  15.     ' ©w¸q®M¸Ë©M¯Å§O
  16.     combinations = Array("¨}ÀuÀu¨}", "Àu¨}¨}Àu", "¨}ÀuÀuÀu", "Àu¨}¨}¨}", "¨}Àu¨}", "Àu¨}Àu", "ÀuÀu", "¨}¨}")

  17.     scores = Array("2", "2", "3", "3", "3", "3", "3", "3")
  18.         
  19.     For i = 2 To lastRow
  20.         If Not skip Then ' ¦pªGskip¬°False¡A«h°õ¦æ¦¹¥N½X¶ô
  21.             Dim j As Long
  22.             'Àˬd·í«eªº¦r²Å§Ç¦C¡]combo¡^¬O§_»Pcombinations¼Æ²Õ¤¤ªº¥ô¦ó¤@­Ó¤¸¯À¤Ç°t¡C
  23.             '¦pªG¤Ç°t¡A«h®Ú¾Ú¹ïÀ³ªºscores¼Æ²Õ¤¤ªº¯Å§O¨Ó§ó·sscoreÅܶq¡A¨Ã¦b¤u§@ªíªº"O"¦C¤¤Åã¥Ü¸Ó¯Å§O¡C
  24.             For j = LBound(combinations) To UBound(combinations)
  25.                 Dim combo As String
  26.                 combo = ""
  27.                 On Error Resume Next
  28.                 combo = ws.Cells(i, "L").Value & ws.Cells(i + 1, "L").Value & ws.Cells(i + 2, "L").Value & ws.Cells(i + 3, "L").Value
  29.                 On Error GoTo 0
  30.                 '³o¬q¥N½Xªº¥Øªº¬O¦b§ä¨ì¤Ç°tªº®M¸Ë®É­pºâ¨ÃÅã¥Ü¬ÛÀ³ªº¯Å§O¡C
  31.                 combo = Left(combo, Len(combinations(j))) ' ¨ú²Õ¦Xªºªø«×,³o¦æ¥N½X±Ncombo¦r²Å¦êªº¥ª°¼³¡¤À¡]ªø«×¬°combinations(j)ªºªø«×¡^½á­Èµ¹combo¡C
  32.                                                           ' ³o¬O¬°¤F½T«Ocomboªºªø«×»P·í«eªº®M¸Ëcombinations(j)ªºªø«×¬Û¦P¡A¥H«K¶i¦æ¤ñ¸û¡C
  33.                 If combo = combinations(j) And ws.Cells(i, "L").Value <> ws.Cells(i - 1, "L").Value Then 'Àˬdcombo¬O§_µ¥©ó·í«eªº®M¸Ëcombinations(j)¡A¨Ã¥B·í«e¦æªº"L"¦Cªº­È»P«e¤@¦æªº"L"¦Cªº­È¤£¦P
  34.                     score = scores(j)
  35.                     ws.Cells(i + Len(combinations(j)) - 1, "O").Value = score ' ¦bO¦Cªº¬Û¹ï¦æ¼ÆÅã¥Ü¯Å§O
  36.                     If score = 2 Or score = 3 Then
  37.                         skip = True ' ¦pªGskip¬°True¡A«h°õ¦æ¦¹¥N½X¶ô
  38.                     End If
  39.                     Exit For
  40.                 End If
  41.             Next j
  42.         Else
  43.         '¥H¤U³o¬q¥N½Xªº¥Øªº¬O¦b¹J¨ì·sªº¦r²Å§Ç¦C¶}©l®É¡]§Y·í«e¦æªº"L"¦Cªº­È»P«e¤@¦æªº"L"¦Cªº­È¤£¦P¡A¨Ã¥B·í«e¦æªº"L"¦Cªº­Èµ¥©ó·í«e®M¸Ëªº²Ä¤@­Ó¦r²Å®É¡^¡A°±¤î¸õ¹L­¡¥N¡C
  44.         '¦pªGskip¬°True¡A«h·|¸õ¹L·í«eªº­¡¥N¡Aª½¨ì¹J¨ì·sªº¦r²Å§Ç¦C¶}©l¡C³o¼Ë¥i¥H¨¾¤î¦b¦P¤@­Ó¦r²Å§Ç¦C¤¤¦h¦¸­pºâ¯Å§O¡C
  45.             If ws.Cells(i, "L").Value <> ws.Cells(i - 1, "L").Value And ws.Cells(i, "L").Value = Left(combinations(j), 1) Then
  46.                 skip = False
  47.             End If
  48.         End If
  49.     Next i
  50. End Sub
½Æ»s¥N½X

TOP

        ÀR«ä¦Û¦b : ¤@­Ó¤Hªº§Ö¼Ö¡D¤£¬O¦]¬°¥L¾Ö¦³±o¦h¡A¦Ó¬O¦]¬°¥L­p¸û±o¤Ö¡C
ªð¦^¦Cªí ¤W¤@¥DÃD