使用VBA判斷并填充顏色
在Excel表格中,有時(shí)需要根據(jù)某些條件來對(duì)單元格進(jìn)行顏色填充。例如,在一個(gè)表格中,如果某個(gè)單元格的值與上一個(gè)單元格相同,則將該單元格填充為綠色;否則填充為紅色。手動(dòng)填充這些顏色比較繁瑣,因此可以使用
在Excel表格中,有時(shí)需要根據(jù)某些條件來對(duì)單元格進(jìn)行顏色填充。例如,在一個(gè)表格中,如果某個(gè)單元格的值與上一個(gè)單元格相同,則將該單元格填充為綠色;否則填充為紅色。手動(dòng)填充這些顏色比較繁瑣,因此可以使用VBA程序來自動(dòng)處理。
VBA程序?qū)崿F(xiàn)步驟
1. 打開Excel表格后,點(diǎn)擊【開發(fā)工具】、【Visual Basic】打開VBA編輯器,也可以使用鍵盤上的【Alt F11】組合鍵打開VBA編輯器。
2. 在VBA編輯器的菜單欄上點(diǎn)擊【插入】、【模塊】。
3. 在“模塊”的代碼框中輸入以下VBA程序代碼:
```
Sub ColorChange()
Dim v1, v2, ro, co
On Error Resume Next '忽略運(yùn)行過程中可能出現(xiàn)的錯(cuò)誤
Set mysheet1 ("Sheet1") '定義工作表
For co 1 To 20 '從第1列到20列
v1 ""
v2 ""
For ro 1 To 1000 '從第一行到1000行
If mysheet1.Cells(ro, co) <> "" Then '如果單元格不是空白
v1 v2 '把v2的值賦給v1
v2 mysheet1.Cells(ro, co) '把單元格的值賦給v2
If v1 <> "" And v1 v2 Then '如果v1不是空白且v1等于v2
mysheet1.Cells(ro, co) RGB(0, 255, 0) '填充的顏色為綠色
End If
If v1 <> "" And v1 <> v2 Then '如果v1不是空白且v1不等于v2
mysheet1.Cells(ro, co) RGB(255, 0, 0) '填充的顏色為紅色
End If
End If
Next
Next
End Sub
```
4. 輸入完程序后,點(diǎn)擊工具欄上的“運(yùn)行”圖標(biāo)運(yùn)行程序,也可以直接按下鍵盤上的【F5】鍵運(yùn)行程序。
5. 表格上的顏色將會(huì)自動(dòng)填充完成。
VBA程序思路解讀
1. 在進(jìn)行單元格數(shù)值對(duì)比判斷時(shí),需要借助一個(gè)中間變量(如:v1)來存儲(chǔ)上一個(gè)單元格的值,以便與后面的值進(jìn)行對(duì)比。同時(shí),每執(zhí)行一列時(shí),需要對(duì)中間變量的值進(jìn)行初始化,以免后續(xù)的判斷出錯(cuò)。
2. 在不確定RGB值所表示的顏色時(shí),可以在Excel表格的工具欄點(diǎn)擊“填充顏色”的下拉選項(xiàng),選擇“其他顏色”,之后點(diǎn)擊【自定義】,在“顏色模式”里選擇“RGB”,再輸入相應(yīng)的數(shù)值即可看到新的顏色。