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

看板Office作者 (細胞)時間6年前 (2019/06/20 16:47), 編輯推噓0(0014)
留言14則, 2人參與, 6年前最新討論串1/1
軟體: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 ------- 實際上直行完後的套用範圍沒有問題 但指定的公式會跑掉阿… 公式變成:=($N1048566<>$Q1048566)*($Q1048566=$T1048566) 請問這個要怎麼修正呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.146.13 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1561020462.A.79C.html

06/20 17:09, 6年前 , 1F
內文的巨集,測試上公式是 =($N6<>$Q6)*($Q6=$T6)
06/20 17:09, 1F

06/20 17:09, 6年前 , 2F
06/20 17:09, 2F

06/20 17:54, 6年前 , 3F
上面連結測試於內文寫到的2010是並無跑掉
06/20 17:54, 3F

06/20 17:55, 6年前 , 4F
但測試在2007版本上,如果作用儲存格在第22列內的話
06/20 17:55, 4F

06/20 17:55, 6年前 , 5F
就會產生如內文所寫的,公式變成=($N1048566<>$Q1048566)*
06/20 17:55, 5F

06/20 17:55, 6年前 , 6F
($Q1048566=$T1048566)
06/20 17:55, 6F

06/20 17:56, 6年前 , 7F

06/20 17:58, 6年前 , 8F
解決方式,將作用儲存格設為第6列(因為欄有絕對參照)
06/20 17:58, 8F

06/20 17:58, 6年前 , 9F
內的任一儲存格,如range("n6").select
06/20 17:58, 9F

06/20 18:00, 6年前 , 10F
或range("n6").activate
06/20 18:00, 10F

06/20 18:01, 6年前 , 11F
設於range.formatconditions.add 上方
06/20 18:01, 11F

06/21 15:13, 6年前 , 12F
成功了!!感謝大大,所以這是office的Bug嗎…
06/21 15:13, 12F

06/21 15:14, 6年前 , 13F
我一直以為公司用的版本是2010,原來是2007XD
06/21 15:14, 13F

06/21 15:31, 6年前 , 14F
應不是bug,因為測試於2003也會有類似的情況
06/21 15:31, 14F
文章代碼(AID): #1T2qWkUS (Office)
文章代碼(AID): #1T2qWkUS (Office)