標題: [發問] 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/) |
|