2018年12月4日 星期二

VBA:EXCEL 管理規則導入應用(檢查票防呆機制建立)(FormatConditions)

故事起源:
這段時間產品出貨的隨附檢查票(又稱COA)居然發生一件天大的慘案!!

慘案!慘案!慘案!(因為被客戶追殺所以重複了3次),有鑒於於此所以到製造現場了解為

何會發生這類的事,經過教育訓練老師過去的指導,透過三現主義(現時、現地、現況)作掌握

後,原因就是人沒確認檢查票就給他蓋章出貨了,故事到此為止後文就不提了。 為了避免再

發,小小的我就發現檢查票是用EXCEL製作跟維護的,就立馬寫了管理規則,透過管理規則

導入上下限的防呆機制,也進一步建立資料為文字與數字的判斷機制。但是!!!算一算近X千張

客製化檢查票ㄝ,怎可能一張一張建立阿。 開始思考使用EXCEL 內建的VBA來建立管理規

則得念頭,鑽研了一段時間,發現這類文章,尤其是中文的資料有點少,當然單純手動新增

管理規則的文章就超多,所以筆者決定透過本篇文章的記錄作分享。

物件:RANGE
屬性:FormatConditions
方法:FormatConditions.ADD

 MSDN 原文 1.管理規則寫入公式:(2個例子)
1.1公式
 ActiveSheet.Range(儲存格位置).FormatConditions.Add Type:=xlExpression, Formula1:="=" & 公式 
ActiveSheet.Range(儲存格位置).FormatConditions(1).Interior.ColorIndex = 3 '我是設定公式成立時反紅
1.2引用EXCEL函數
 ActiveSheet.Range(儲存格位置).FormatConditions.Add Type:=xlExpression, Formula1:="=" & EXCEL函數

 ActiveSheet.Range(儲存格位置).FormatConditions(1).Interior.ColorIndex = 3 

2.管理規則寫入格式化內容:
2.1 不介於(參數設定:xlNotBetween)
 ActiveSheet.Range(R1).FormatConditions.Add Type:=xlCellValue, Operator:=xlNotBetween, Formula1:=10, Formula2:=20

 ActiveSheet.Range(R1).FormatConditions(1).Interior.ColorIndex = 3

看到此,有沒有一種脫褲子放屁的感覺,VBA寫好了,怎導入?該不會還是要手動建立吧!!!等等這樣的疑問產生。 其實僅有導入管理規則的VBA CODE是不夠的歐,還需要配合檔案開啟等等的VBA指令才能滿足"自動建立的目標"。
 
再請參筆者文章:


沒有留言:

張貼留言

指數變化(2024.05.17)

指數變化(2024.05.17) 上周焦點:         5/9當周焦點                          事實:fed與非農就業,引起投資市場對降息有加速,但肯定的是,fed說不加息了。                        美國密西根大學信心指數 ...