Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("C:\Scripts\Test.xls")
x = 1
Do Until objExcel.Cells(x,1).Value = ""
If CDate(objExcel.Cells(x,1).Value) < Date Then
objExcel.Cells(x,1).Interior.ColorIndex = 3
End If
x = x + 1
Loop
考慮到它所做的事,這指令碼看起來一點也不長,先是建立 Excel.Application 物件的執行個體,接著將 Visible 屬性設為 True。我們之後使用 Open 方法來開啟 C:\Scripts\Test.xls 檔案,所有這些動作所做的是,開啟我們的試算表,使之顯示在螢幕上。
出現試算表之後,我們指派 1 的值給一個名為 x 的計數器變數,用它隨著我們處理整份試算表來追蹤目前的列。接下來呢,就開始處理整份試算表,建立一個迴圈持續執行到在 A 欄中遇到空白的值為止。這正是這行程式碼的用途:
Do Until objExcel.Cells(x,1).Value = ""
注意:為什麼要這麼做?這是為了單純起見,我們假設您在 A 欄中沒有空白儲存格,因此只是一碰到空白儲存格,就知道是到了資料結尾。 |
在 Do Loop 中,我們會檢查看目前儲存格的值是不是小於今天的日期,採取的方法是,取得目前儲存格的值 (objExcel.Cells.(x,1).Value),並使用 VBScript CDate (character-to-date) 函式確定該值被當作日期對待,接著將該值與目前日期相比較 (使用 Date 函式來完成)。如果儲存格的值小於目前日期,就使用這行程式碼將儲存格的內部 (背景) 色彩變為紅色:
objExcel.Cells(x,1).Interior.ColorIndex = 3
注意:那我們怎麼知道將 ColorIndex 設為 3 會有紅色的背景?答案是,要等到執行此處參考的指令碼後才知道,這會顯示所有的背景色彩及其對應值。 |
都了解了嗎?要是您不確定為什麼要檢查 objExcel.Cells(x,1) 的值,記住 x 這個變數是建立用來追蹤目前的列,因為 x 是從值 1 開始,第一次執行迴圈是要檢查儲存格 (1,1):列 1,欄 1。完成第一次檢查之後,x 就會增加 1,所以下一次執行迴圈就會檢查儲存格 (2,1):列 2,欄 1 等等。
就這麼簡單、迅速,您可以說這是…嗯…嗯,一時想不出要說什麼,反正您能夠意會就好。 |