[算表] excel 使用VBA寫入格式化規則的問題

作者: zyi840449 (細胞)   2019-06-20 16:47:40
軟體:ofice excel
版本:2010
是這樣的,小弟弟我寫了一段巨集
希望能快速寫入格式化規則
巨集如下:
Sub testcolor()
Range("N6:T26").FormatConditions.Delete
Range("N6:T26").FormatConditions.Add Type:=xlExpression,
Formula1:="=($N6<>$Q6)*($Q6=$T6)"
Range("N6:T26").FormatConditions(1).Interior.Color = 13434879
Range("N6:T26").FormatConditions(1).StopIfTrue = False
End Sub
預期巨集執行完畢之後,格式化的條件規則管理員應該會看到如下:
公式: =($N6<>$Q6)*($Q6=$T6)
套用到:=$N$6:$T$26
作者: soyoso (我是耀宗)   2019-06-20 17:09:00
內文的巨集,測試上公式是 =($N6<>$Q6)*($Q6=$T6)如 https://i.imgur.com/9hN36hk.gifv 並無跑掉上面連結測試於內文寫到的2010是並無跑掉但測試在2007版本上,如果作用儲存格在第22列內的話就會產生如內文所寫的,公式變成=($N1048566<>$Q1048566)*($Q1048566=$T1048566)https://i.imgur.com/4N8hNyc.gifv解決方式,將作用儲存格設為第6列(因為欄有絕對參照)內的任一儲存格,如range("n6").select或range("n6").activate設於range.formatconditions.add 上方
作者: zyi840449 (細胞)   2019-06-21 15:13:00
成功了!!感謝大大,所以這是office的Bug嗎…我一直以為公司用的版本是2010,原來是2007XD
作者: soyoso (我是耀宗)   2019-06-21 15:31:00
應不是bug,因為測試於2003也會有類似的情況

Links booklink

Contact Us: admin [ a t ] ucptt.com