返回列表 上一主題 發帖

[發問] 關於欄位字體顏色差異的判斷?

回復 3# 劉大胃

有空試試看是不是你要的結果感謝
  1. Public Sub 顏色比對練習()

  2. For X = 1 To 2
  3.     For Y = 3 To 7
  4.     If Cells(X, 1).Interior.Color = Cells(Y, 1).Interior.Color Then
  5.         If Cells(X, 1).Font.Color = Cells(Y, 1).Font.Color Then
  6.            Cells(Y, 1).Interior.Color = RGB(160, 250, 120)
  7.         End If
  8.     End If
  9.     Next Y
  10. Next X

  11. End Sub
複製代碼
0408.rar (10.42 KB)

TOP

本帖最後由 軒云熊 於 2021-4-10 23:06 編輯

回復 8# 劉大胃
有空幫我試試看 這樣行不行 感謝
  1. Public Sub 判斷顏色練習()

  2. Set xD = CreateObject("Scripting.Dictionary")

  3. For I = 1 To 4
  4.     For Y = 1 To Len(Cells(I, 1))
  5.         E = E & Cells(I, 1).Characters(Y, 1).Font.ColorIndex
  6.     Next Y
  7.     xD(E) = Trim(xD(E) & " " & I)
  8.     E = ""
  9. Next I

  10. For Each D In xD
  11.     SP = Split(xD(D), " ")
  12.     If UBound(SP) < 1 Then
  13.         Cells(xD(D), 1).Select
  14.     End If
  15. Next D

  16. End Sub
複製代碼
0410.rar (6.31 KB)

TOP

本帖最後由 軒云熊 於 2021-4-11 23:48 編輯

回復 10# 劉大胃

有空幫我看看這樣是不是你要的結果  謝謝
0411.rar (6.3 KB)

TOP

本帖最後由 軒云熊 於 2021-4-12 21:29 編輯

回復 14# 劉大胃

抱歉 檔案沒有存到檔 >"< ...
有空幫我試試看 這個結果是不是你要的  
但有一個很大的問題  如果檔案很大 會跑非常慢..因為我的迴圈太多了 而且串聯太多次..
不知道如果用 物件加字典 會不會比較快 或著 有更好的寫法 看看有沒有大大可以幫忙  感謝
  1. Public Sub 判斷顏色練習0412()
  2. Application.ScreenUpdating = False
  3. Set xD = CreateObject("Scripting.Dictionary")

  4. For I = 1 To Cells(1, 1).End(4).Row
  5. E = Cells(I, 1)
  6.     xD(E) = Trim(xD(E) & " " & I) & E
  7. Next I
  8. E = ""

  9. For Each D In xD
  10.     SP = Split(xD(D), " ")
  11.     If UBound(SP) = 0 Then xD.Remove (D): GoTo A01
  12.     For Each S In SP
  13.         If UBound(SP) > 0 Then
  14.             If E <> "" Then xD(E) = Trim(xD(E) & " " & Mid(S, 1, 1))
  15.             E = ""
  16.         End If
  17.     Next S
  18. A01: Next D

  19. For Each D In xD
  20. SP = Split(xD(D), " ")
  21.     For Each S In SP
  22.         For Y = 1 To Len(Cells(Mid(S, 1, 1), 1))
  23.             E = E & Cells(Mid(S, 1, 1), 1).Characters(Y, 1).Font.ColorIndex
  24.         Next Y
  25.         If E <> "" Then xD(E) = Trim(xD(E) & " " & Mid(S, 1, 1))
  26.         If F = 0 Then xD.Remove (D): F = 1
  27.         E = ""
  28.     Next S
  29. Next D

  30. For Each D In xD
  31. SP = Split(xD(D), " ")
  32.     If UBound(SP) < 1 Then
  33.         G = G & "," & Cells(xD(D), 1).Row
  34.     End If
  35. Next D

  36. MsgBox Mid(G, 2) & "列顏色不相同"

  37. Application.ScreenUpdating = True
  38. End Sub
複製代碼
[attach]33190[/attach]

0412.rar (7.51 KB)

TOP

回復 14# 劉大胃

剛才發現 檔案沒上傳好  抱歉 再傳一次

0412.rar (20.54 KB)

TOP

        靜思自在 : 做該做的事是智慧,做不該做的事是愚癡。
返回列表 上一主題