Board logo

標題: [發問] Excel VBA 依條件儲存格反色 [打印本頁]

作者: msmplay    時間: 2018-11-18 17:46     標題: Excel VBA 依條件儲存格反色

本帖最後由 msmplay 於 2018-11-18 17:49 編輯

[attach]29694[/attach]

請問如何使用VBA(非格式化條件),讓範圍B2:V20可依條件欄及列反底色+粗體,條件如下:

B2:V2欄,名稱為 "目標" 該欄反淺藍色+粗體。


B2:V2欄,名稱為 "達成" 該欄反深藍色+粗體。


D3:D20列,名稱為 "All" 該列反淺灰色+粗體。


C3:C20列,名稱為 "All" 該列反灰色+粗體。


B3:B20列,名稱為 "All" 該列反深灰色+粗體。


提醒:設定條件需由1~5依序反色,如此才能依需求覆蓋其他底色。


[attach]29695[/attach]

測試檔 http://www.FunP.Net/248291


作者: msmplay    時間: 2018-11-20 22:53

重新更新測試檔連結另外已重新更新測試檔連結,非常感謝~~~
https://drive.google.com/file/d/1iwqU0gEUAywjFtgxYDuURwzm1QcZCc7A/view?usp=sharing
作者: 准提部林    時間: 2018-11-21 11:45

附件上傳為何不用本論壇的方式???
作者: msmplay    時間: 2018-11-21 13:20

回復 3# 准提部林
准大~~~~因為主題已經不能編輯,不過抱歉,沒注意到原來回覆也能再次上傳附件,已補上測試檔


   [attach]29700[/attach]
作者: 准提部林    時間: 2018-11-21 17:07

Sub ifcolor_1()
Dim R&, C&, xR As Range, Cv%, Cr, i&, j%
R = Cells(Rows.Count, 2).End(xlUp).Row
C = Cells(2, Columns.Count).End(xlToLeft).Column
Cr = Array(16, 48, 15) '橫向的色號(自行更改)
With [B2].Resize(R - 1, C - 1)
     .Interior.ColorIndex = xlNone: .Font.Bold = False
     For Each xR In .Rows(1).Cells
         Cv = Switch(xR = "目標", 34, xR = "達成", 33, xR = xR, 0) '縱向的色號(自行更改)
         If Cv > 0 Then
            With xR.Resize(R - 1): .Interior.ColorIndex = Cv: .Font.Bold = True: End With
         End If
     Next
     For i = 2 To R - 1:  For j = 1 To 3
         If .Cells(i, j) = "All" Then
            With .Cells(i, j).Resize(1, C - j)
                 .Interior.ColorIndex = Cr(j - 1): .Font.Bold = True
            End With
            Exit For
         End If
     Next:  Next
End With
End Sub
作者: msmplay    時間: 2018-11-21 20:33

回復 5# 准提部林


   准大謝謝你喔~~~~~問題已解決,再次感謝




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