Board logo

標題: [發問] 顏色判別 [打印本頁]

作者: coafort    時間: 2021-10-28 17:08     標題: 顏色判別

比方表格中只要是A就是紅色
B是黃色
C是藍色
請問要如何設定
謝謝
[attach]34291[/attach]
作者: jeff5424    時間: 2021-10-28 23:05

網路找 :設定格式化的條件
https://www.managertoday.com.tw/articles/view/57315
作者: coafort    時間: 2021-10-29 07:49

網路找 :設定格式化的條件
https://www.managertoday.com.tw/articles/view/57315
jeff5424 發表於 2021-10-28 23:05


抱歉~我沒說清楚我的需求
其實A B C那些是代表股票
因為有非常多
因為是從WEB匯入好幾檔ETF成分股資料
一段時間有些成分股會被剃除
有些會被加入
會一直變動
比方裡面有台積電的ETF
台積電顯示紅色
有聯電的顯示黃色
諸如此類
謝謝
作者: samwang    時間: 2021-10-29 08:24

回復 1# coafort

請測試看看,謝謝
Sub test()
Arr = Range("a1:e7") '資料範圍
Cells.Interior.ColorIndex = 0 '無顏色
For j = 1 To UBound(Arr, 2): For i = 2 To UBound(Arr)
    If UCase(Arr(i, j)) = "A" Then Cells(i, j).Interior.ColorIndex = 3
    If UCase(Arr(i, j)) = "B" Then Cells(i, j).Interior.ColorIndex = 6
    If UCase(Arr(i, j)) = "C" Then Cells(i, j).Interior.ColorIndex = 5
Next i: Next j
End Sub
作者: hcm19522    時間: 2021-10-29 10:35

https://blog.xuite.net/hcm19522/twblog/590097097
作者: coafort    時間: 2021-10-29 15:22

感謝上面兩位大大解說
小弟沒表達好
我的意思是
有辦法自己判別相同的會顯示一樣顏色
不需要手動指定台積電=紅色
比方工作表裡面
只要有台積電就會自動顯示紅色
有聯電就會顯示黃色
這樣就不用自己找有重複的成分股
作者: samwang    時間: 2021-10-29 17:08

回復 6# coafort

請問方便提供檔案,也將顯示需求和結果的樣式,以便測試,謝謝
作者: coafort    時間: 2021-10-30 06:53

回復  coafort

請問方便提供檔案,也將顯示需求和結果的樣式,以便測試,謝謝
samwang 發表於 2021-10-29 17:08



  請問大大要如何給檔案
謝謝
作者: samwang    時間: 2021-10-30 08:07

回復 8# coafort


可以直接附件檔案上傳即可,謝謝
作者: coafort    時間: 2021-10-30 09:12

回復  coafort


可以直接附件檔案上傳即可,謝謝
samwang 發表於 2021-10-30 08:07


目前只有簡單重複的直接顯示紅色
但這樣分不清哪個跟哪個重複
因為成分股更新後常常會有新增或是刪除的
如果是手動找重複滿累人的還有遺漏的問題
再麻煩大大了
感恩大大
    [attach]34308[/attach]
作者: samwang    時間: 2021-10-30 12:08

回復 10# coafort


剛剛發現您的資料有85種不一樣的
加了底色後也是找不容易找到同一個顏色
所以不建議加底色
謝謝
作者: hcm19522    時間: 2021-10-30 12:36

本帖最後由 hcm19522 於 2021-10-30 12:41 編輯

=(COUNTIF($A$3:$M$33,A3)>1)*(MOD(COLUMN(A1),4)=1)
作者: coafort    時間: 2021-10-30 12:43

=(COUNTIF($A$3M$33,A3)>1)*(MOD(COLUMN(A1),4)=1)
hcm19522 發表於 2021-10-30 12:36


請問大大
這是?
謝謝
作者: hcm19522    時間: 2021-10-30 13:24

回復 13# coafort


  格式化公式
https://blog.xuite.net/hcm19522/twblog/590098778

或$A:$M 改 $A$3:$M$33
作者: coafort    時間: 2021-10-30 14:25

回復  coafort


  格式化公式


或$AM 改 $A$3M$33
hcm19522 發表於 2021-10-30 13:24


謝謝大大
但是我弄不出來
是否可勞煩大大用小弟附件幫小弟弄呢?
謝謝大大
非常感恩
作者: hcm19522    時間: 2021-10-30 14:52

回復 15# coafort

~~~~~~~~~~~~~
作者: coafort    時間: 2021-10-30 18:03

回復  coafort

~~~~~~~~~~~~~
hcm19522 發表於 2021-10-30 14:52


非常謝謝大大的幫忙
有您真好
我明天研究看看:kiss:
作者: 准提部林    時間: 2021-10-31 15:45

回復 10# coafort

格式條件+vba
1) 重覆--藍色字
2) 對有重覆的股票名稱雙擊左鍵, 所有相同的標淺紅底
[attach]34325[/attach]

用了countif, 範圍太大, 會很卡~~可惜是跳欄, 用match公式很長
作者: coafort    時間: 2021-10-31 19:24

回復  coafort

格式條件+vba
1) 重覆--藍色字
2) 對有重覆的股票名稱雙擊左鍵, 所有相同的標淺紅底
...
准提部林 發表於 2021-10-31 15:45


大大這個好方便
非常感恩大大提供的方法
感恩感恩無限:)
作者: samwang    時間: 2021-11-1 08:06

回復 19# coafort

請測看看,謝謝
作者: coafort    時間: 2021-11-15 15:09

回復 20# samwang

謝謝大大
作者: Andy2483    時間: 2022-12-30 08:05

本帖最後由 Andy2483 於 2022-12-30 08:10 編輯

回復 18# 准提部林


    謝謝前輩
今天藉此帖練習陣列與字典,將格式化條件改為VBA,請前輩再指導,謝謝前輩

執行前:
[attach]35701[/attach]

執行結果:
[attach]35702[/attach]

工作表模組:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
     If .Row < 3 Or .Value = "" Then Exit Sub
     If .Column Mod 4 <> 1 Then Exit Sub
     Cancel = True
     Call 變字色_多個同股名
     
     If Y(.Value & "|") > 1 Then Y(.Value).Interior.ColorIndex = 4
     Set Y = Nothing
     Set Brr = Nothing
End With
End Sub

Module1:
Option Explicit
Public Brr, Y
Sub 變字色_多個同股名()
Dim C&, R&
Set Y = CreateObject("Scripting.Dictionary")
ActiveSheet.UsedRange.Offset(2).Font.ColorIndex = 1
ActiveSheet.UsedRange.Offset(2).Interior.ColorIndex = xlNone
Brr = ActiveSheet.UsedRange
Set Y(1) = [B1]
For C = 1 To UBound(Brr, 2) Step 4
   For R = 3 To UBound(Brr)
      Y(Brr(R, C) & "|") = Y(Brr(R, C) & "|") + 1
      If Y(Brr(R, C) & "|") = 1 Then
         Set Y(Brr(R, C)) = Cells(R, C)
         GoTo PASS
      End If
      If Y(Brr(R, C) & "|") = 2 Then
         Set Y(1) = Union(Y(1), Y(Brr(R, C)))
      End If
      Set Y(1) = Union(Y(1), Cells(R, C))
      Set Y(Brr(R, C)) = Union(Y(Brr(R, C)), Cells(R, C))
      
PASS:
   Next
Next
Y(1).Font.ColorIndex = 5
End Sub
作者: coafort    時間: 2023-3-30 10:02

本帖最後由 coafort 於 2023-3-30 10:12 編輯
回復  coafort

格式條件+vba
1) 重覆--藍色字
2) 對有重覆的股票名稱雙擊左鍵, 所有相同的標淺紅底
...
准提部林 發表於 2021-10-31 15:45


准大大您好
我增加E J O T這些欄位
變色功能就異常了
請問要如何改呢?
謝謝准大大
[attach]36061[/attach]
作者: Andy2483    時間: 2023-3-30 16:01

本帖最後由 Andy2483 於 2023-3-30 16:28 編輯

回復 23# coafort


    謝謝論壇,謝謝前輩
後學模擬情境,學習VBA儲存格集.觸發與字典的方案如下,請前輩參考
[attach]36065[/attach]

執行前:
[attach]36066[/attach]

輸入後執行結果:
[attach]36067[/attach]

工作表模組:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
     If .Row < 3 Or .Value = "" Or .Count > 1 Then Exit Sub
     If .Column Mod 5 <> 1 Then Exit Sub
     Cancel = True
     Call 變字色_多個同股名
     
     If Y(.Value & "|") > 1 Then Y(.Value).Interior.ColorIndex = 4
End With
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
   If .Row < 3 Or .Count > 1 Then Exit Sub
   If .Column Mod 5 <> 0 Then Exit Sub
   Call 變字色_多個同股名
   
   If Y(.Offset(0, -4) & "|") > 1 Then
      Y(.Offset(0, -4) & "").Interior.ColorIndex = 4
      Application.EnableEvents = False
      Y(.Offset(0, -4) & "/").Value = .Value
      Application.EnableEvents = True
      Application.Goto Y(.Offset(0, -4) & "/")
   End If
End With
End Sub

Module1:
Option Explicit
Public Y
Sub 變字色_多個同股名()
Dim Brr, Crr, C&, i&, X&, xR, R&, T, V, Z, Ad
Set Y = CreateObject("Scripting.Dictionary")
ActiveSheet.UsedRange.Offset(2).Font.ColorIndex = 1
ActiveSheet.UsedRange.Offset(2).Interior.ColorIndex = xlNone
Brr = ActiveSheet.UsedRange
Set Y(1) = [B1]
For C = 1 To UBound(Brr, 2) Step 5
   For R = 3 To UBound(Brr)
      Y(Brr(R, C) & "|") = Y(Brr(R, C) & "|") + 1
      If Y(Brr(R, C) & "|") = 1 Then
         Set Y(Brr(R, C)) = Cells(R, C)
         Set Y(Brr(R, C) & "/") = Cells(R, C + 4)
         GoTo PASS
      End If
      If Y(Brr(R, C) & "|") = 2 Then
         Set Y(1) = Union(Y(1), Y(Brr(R, C)))
      End If
      Set Y(1) = Union(Y(1), Cells(R, C))
      Set Y(Brr(R, C)) = Union(Y(Brr(R, C)), Cells(R, C))
      Set Y(Brr(R, C) & "/") = Union(Y(Brr(R, C) & "/"), Cells(R, C + 4))
      
PASS:
   Next
Next
Y(1).Font.ColorIndex = 5
End Sub
作者: coafort    時間: 2023-3-30 16:20

回復  coafort


    謝謝論壇,謝謝前輩
後學模擬情境,學習VBA儲存格集.觸發與字典的方案如下,請前輩參 ...
Andy2483 發表於 2023-3-30 16:01


謝謝大大
如果單就值利率部分的VB是哪一段呢
謝謝
作者: Andy2483    時間: 2023-3-30 16:31

回復 25# coafort


    謝謝前輩回復
24樓藍色字部分是關於殖利率,跟之前功能混再一起了
作者: coafort    時間: 2023-3-30 16:40

回復  coafort


    謝謝前輩回復
24樓藍色字部分是關於殖利率,跟之前功能混再一起了
Andy2483 發表於 2023-3-30 16:31



謝謝大大
不好意思大大
能否獨立值利率那個部分嗎
感恩
作者: Andy2483    時間: 2023-3-30 16:46

回復 27# coafort


    兩個功能互不干涉,有什麼問題嗎?
作者: coafort    時間: 2023-3-30 18:31

回復  coafort


    兩個功能互不干涉,有什麼問題嗎?
Andy2483 發表於 2023-3-30 16:46


因為想做兩種不同版本
謝謝大大
作者: Andy2483    時間: 2023-3-30 19:53

回復 29# coafort


    謝謝前輩回復
建議前輩上傳現行格式化條件5欄版本範例給其他前輩幫忙解決方案,
後學對格式化條件著墨不深,請這方面厲害的前輩幫忙,謝謝各位前輩
作者: coafort    時間: 2023-3-31 09:15

回復  coafort


    謝謝前輩回復
建議前輩上傳現行格式化條件5欄版本範例給其他前輩幫忙解決方案,
...
Andy2483 發表於 2023-3-30 19:53


謝謝大大




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)