?excel使用技巧大全請(qǐng)看下圖:
試操作一下,果然相對(duì)引用不能用。
相對(duì)引用用不了,肯定是設(shè)置的條件格式和期望結(jié)果就不同的了,比如:
咱們看最后一條數(shù)據(jù),預(yù)算額度*0.2是4.8,4.8大于剩余額度3,大于0,結(jié)果卻顯示“!”,因?yàn)楦?dāng)前要設(shè)置的條件格式的單元格的值永遠(yuǎn)是固定的。
這怎么解決呢?方法:
通過(guò)Offset+row來(lái)實(shí)現(xiàn)相對(duì)引用
注意:
公式:=OFFSET($L$4,ROW()-4,-1)
因?yàn)閞ow()回到了當(dāng)前單元格的所在行數(shù),因此通過(guò)offset,相對(duì)當(dāng)前單元格進(jìn)行列跟行的偏移,這就成了一個(gè)相對(duì)引用。
設(shè)置完第1步后,雙擊格式刷,一個(gè)一個(gè)的將條件格式的單元格來(lái)設(shè)置好,一定不可以直接下拉。
這個(gè)方法比一個(gè)個(gè)單元格來(lái)設(shè)置條件格式快了很多,不過(guò)一多單元格的話就會(huì)很累了,所以只適合單元格少的情況使用。單元格多的話還是得用VBA來(lái)解決。
利用VBA來(lái)批量設(shè)置條件格式
一個(gè)循環(huán)加上一個(gè)條件設(shè)置就足夠了。如果不知道如何設(shè)置上面的條件格式的代碼,怎么寫(xiě)呢?記錄宏唄,然后通過(guò)F8一步一步地執(zhí)行宏。同時(shí)觀察數(shù)據(jù)表中的變化,我們可以從宏代碼中找到關(guān)鍵代碼。宏代碼如下:
Sub 宏1()
Range('M4').Select
Selection.FormatConditions.AddIconSetCondition
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1)
.ReverseOrder = False
.ShowIconOnly = False
.IconSet = ActiveWorkbook.IconSets(xl3Symbols2)
End With
With Selection.FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = 0
.Operator = 7
End With
With Selection.FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueFormula
.Value = '=OFFSET('Sheet1 (3)'!$L$4,ROW()-4,-1)*0.2'
.Operator = 7
End With
End Sub
自己再優(yōu)化整理一下代碼,加個(gè)循環(huán),就可以做出下面這個(gè)效果:
這樣就完美解決了。
代碼如下:
Sub 條件格式的批量設(shè)置 ()
For Each Rng In [m4:m15]
Rng.FormatConditions.AddIconSetCondition
Rng.FormatConditions(1).IconSet = ActiveWorkbook.IconSets(xl3Symbols2)
With Rng.FormatConditions(1).IconCriteria(2)
.Type = xlConditionValueNumber
.Value = 0
.Operator = 7
End With
With Rng.FormatConditions(1).IconCriteria(3)
.Type = xlConditionValueFormula
.Value = '=OFFSET('Sheet1 (3)'!$L$4,ROW()-4,-1)*0.2'
.Operator = 7
End With
Next
End Sub
VBA要學(xué)的知識(shí)點(diǎn)很多,我們只要掌握一些經(jīng)常用到的語(yǔ)法結(jié)構(gòu)和基本知識(shí)就能大大的提升日常工作的效率了,大家繼續(xù)努力。
聯(lián)系客服