看板 Office 關於我們 聯絡資訊
軟體: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
soyoso: 內文的巨集,測試上公式是 =($N6<>$Q6)*($Q6=$T6) 06/20 17:09
soyoso: 如 https://i.imgur.com/9hN36hk.gifv 並無跑掉 06/20 17:09
soyoso: 上面連結測試於內文寫到的2010是並無跑掉 06/20 17:54
soyoso: 但測試在2007版本上,如果作用儲存格在第22列內的話 06/20 17:55
soyoso: 就會產生如內文所寫的,公式變成=($N1048566<>$Q1048566)* 06/20 17:55
soyoso: ($Q1048566=$T1048566) 06/20 17:55
soyoso: https://i.imgur.com/4N8hNyc.gifv 06/20 17:56
soyoso: 解決方式,將作用儲存格設為第6列(因為欄有絕對參照) 06/20 17:58
soyoso: 內的任一儲存格,如range("n6").select 06/20 17:58
soyoso: 或range("n6").activate 06/20 18:00
soyoso: 設於range.formatconditions.add 上方 06/20 18:01
zyi840449: 成功了!!感謝大大,所以這是office的Bug嗎… 06/21 15:13
zyi840449: 我一直以為公司用的版本是2010,原來是2007XD 06/21 15:14
soyoso: 應不是bug,因為測試於2003也會有類似的情況 06/21 15:31