返回列表 上一主題 發帖

[發問] 計算套裝所得的級別

回復 10# cdkee


A欄本來的字段都少了一個字???
"測試品"如何斷定???

完全對不上~~

TOP

本帖最後由 cdkee 於 2024-1-29 16:32 編輯
回復  cdkee


A欄本來的字段都少了一個字???
"測試品"如何斷定???

完全對不上~~
准提部林 發表於 2024-1-29 16:14

是的,A欄本來的字段都少了一個字,就是本來每個組合的第一個,因為要配合另外一條件(新改的):每次發現任何套裝組合,之後必須發現與剛才發現的套裝組合中最後1個不同(為方便溝通稱這個做"測試品")(這是代替之前的條件:套裝組合第一個必須跟上一行的一個不同)
在檔案中的L1至L73例子中,已將"測試品"的底色顯示為紅色,方便識別及說明

TOP

我試用lastChar = Right(Tr(1), 1)來存儲當前匹配鍵的最後一個字符,然後檢查下一個單元格的內容與lastChar不同, 才開始繼續在L列向下檢查,但仍然不成功
  1. Sub Test_A1()
  2. Dim Arr, A, Brr, xD, i&, j&, T$, Tr, R, lastChar$
  3. Set xD = CreateObject("Scripting.Dictionary") '創建一個字典對象

  4. '遍歷一個數組,並將每個元素按"\"分割,然後將分割後的第二部分作為鍵,第一部分作為值存入字典
  5. For Each A In Array("1^12\優優良", "2^10\良良優", "3^3\優優優", "4^3\良良良", _
  6.                     "5^3\優良", "6^3\良優", "7^-3\優優", "8^-10\良良")
  7.     Tr = Split(A, "\")
  8.     xD(Tr(1)) = Tr(0)
  9. Next A

  10. '讀取Excel工作表中的一個範圍到Arr數組,然後根據Arr的大小重新定義Brr數組
  11. Arr = Range([L1], [L65536].End(xlUp)(5))
  12. ReDim Brr(1 To UBound(Arr), 0)

  13. '關閉屏幕更新,以提高代碼執行速度
  14. Application.ScreenUpdating = False

  15. '遍歷Arr數組,並根據字典中的條目對Excel工作表中的某些單元格進行格式化
  16. For i = 2 To UBound(Arr) - 4
  17.     T = Arr(i, 1)
  18.     If T <> Arr(i - 1, 1) Then
  19.        For j = i + 1 To i + 2
  20.            T = T & Arr(j, 1)
  21.            R = xD(T)
  22.            If R <> "" Then
  23.               Tr = Split(R, "^")
  24.               lastChar = Right(Tr(1), 1)
  25.               If Arr(j + 1, 1) <> lastChar Then
  26.                  With Range("L" & i & ":L" & j)
  27.                       .BorderAround 1
  28.                       .Interior.ColorIndex = Cells(Tr(0) + 2, 1).Interior.ColorIndex
  29.                  End With
  30.                  Brr(j - 1, 0) = Tr(1): i = j: Exit For
  31.               End If
  32.            End If
  33.        Next j
  34.     End If
  35. Next i

  36. '將Brr數組的內容寫入Excel工作表的一個範圍
  37. [o2].Resize(UBound(Brr)) = Brr
  38. End Sub
複製代碼

TOP

8個級別//標示8個顏色
准提部林 發表於 2024-1-28 10:30



   原來原先這個已經成功的,只要將級別定義改為之後准提部林先進後來的建議,再次感謝及因我的疏浪費先進時間,在此致歉.

TOP

        靜思自在 : 人生沒有所有權,只有生命的使用權。
返回列表 上一主題