[算表] 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