我做了個macro
主要是要在選取的格上填入設定內的底色等..
但後來又多做了個選項.以方便選了底色後,覺得不好看時能還原回先前原來的底色
但問題來了.
我原本要儲存原先底色之值的變數假設為BGColor
語法寫成如下
Do While i <> 1
BGColor = Selection.Interior.Color '將原本底色色值取出
i = 1
Loop
可是奇怪的來了,明明原本的儲存是白色(EXCEL開啟時所見的格子底色)
Q1:
但當我利用了 Select case ~~End select 來做自選時、、
當選了還原原先底色的設定值時..
其格子的底色卻變成黑色的了..
請教這是何故呢?
================
Q2
另外我還想多請教一下邏輯的問題,若有大大知道望請提點一二
如上所述,原本我是沒有要還原底色的
所以利用select case.~~end select
都很方便..
但當加入判別條件時,先排除問題1中底色不知何故存成黑色
我利用變數 i 來讓BGColor去儲存格內的色值
不過當我巨集完了,他下回再次執行時(在該活頁簿未關閉的前提下)
巨集又會自動把 i 的初始值設為0,,然後呢又跑進去do while裡抓格內的底色值了..(可是目前這格內的色值已變為我第一次更改的值了..)意指我還是無法達成讓它恢復原表格內的底色..= =
我後來將 i 改為全域變數..但問題還是一樣....
所以應該是邏輯打結了.
畢竟巨集跑完了..它理應就是會當成 i =0 然後再次跑do while
不過改成全域變數,不是它會記錄到使用者關閉活頁簿才清除嗎?
也就是說我執行第一次程序時,i 會由0 變1 ,但第二次再執行時,i 應該還是為1...但我不曉得為何它還是變成0..然後又去跑do while.了..
以上感謝諸位解惑..