close

      自從進入職場後,我發現我用最多的Office軟體,足了每天都要收信的Outlook以外就是Excel了。舉凡寫專案、統計資料、Bug整理、資料管理...等,全部都是用Excel來完成。記得大學一年級時,我連Excel是啥東東都不知道呢!不過那時候的計算機概論的吳俊毅老師,就要求我們一定要學會Excel,因為我們讀化工的人之後難免要處理許多數據,所以非學不可,現在還蠻感謝老師嚴格的要求。言歸正傳;Excel是一個Office的應用程式,當我們開啟一個新檔時,程式就為我們產生一個活頁簿,因此一個檔案就是一個活頁簿。每個活頁簿中又會包含許多工作表,而每個工作表有包含著數個儲存格,大家可參考下圖來強化一下印象。

Execl結構1

在VBA中又要如何表現這些東西呢?其實還蠻直觀的~

                  Excel應用程式 => Application

                  活頁簿 => WorkBook

                  工作表 => WorkSheet 或 Sheet

                  儲存格 => Range 或 Cell

因此我們要取得工作表A1儲存格的資料,要怎麼寫呢!

Workbooks(1).WorkSheets(1).Range("A1").Value

或是

Workbooks(1).WorkSheets(1).Cells(1,1).Value

       有人就會問了,怎麼跟上面不同,多了s又多了括弧;那是因為加了s是指集合或稱群組,也就是說同時間你可能會開啟多個Excel檔案,而你必須告訴程式你要存取的是這堆活頁簿中的哪一個,所以就會有括弧的產生,括弧中的數字代表第幾個的意思嚕~在此還沒有要讓各位直接操作程式的目的,只是藉由程式碼來介紹一下寫法,可能有人會問我看到有些人儲存格的表示方式是[A1],這樣也行嗎?是的,這也是一種表示式,但我基本上不用這類型簡化寫法,第一、它比較難閱讀,對於協同作業或未來轉交維護都會增加困難,第二、依據微軟的說明,簡化的寫法會影響效能,簡化的越多效能降得越多,因為程式轉碼的時候要多花心力去辨認的關係。因此在這邊我的寫法會以比較繁瑣的寫作方式進行。

      最後在說明一下Excel的儲存能力,Office 2003最多可儲存256欄X65536列的資料,而Office 2010最多可儲存16384欄X1048576列的資料,這個資料很重要,你要大略了解一個工作表的極限在哪裡,一旦超出極限就會發生程式執行錯誤。而一個活頁簿可以容納多少工作表呢?答案是依據你的記憶體的容量來決定,所以理論上只要你的記憶體足夠的話就可以建立無限多個工作表,但就目前用到為止我還沒發生因為工作表太多而罷工的情況。

arrow
arrow
    全站熱搜

    粽子 發表在 痞客邦 留言(0) 人氣()