「VBA基礎」VBA中的對象你真的瞭解嗎?


​前陣子很火的一張惡搞圖


「VBA基礎」VBA中的對象你真的瞭解嗎?


看到來自於Excel的嘲諷了嗎?

ᶘ ͡°ᴥ͡°ᶅ


這篇文章就帶你認識Excel中的對象概念,瞭解一下Excel中的常見對象:工作簿、工作表、單元格。好好學,在Excel中一定找的到對象!


關於對象

在使用Excel開發VBA程序的時候,從對象的角度進行思考是很有幫助的。因為日常工作中我們就是手動操作這些對象。

新建工作簿、新建工作表、向單元格輸入值、修改單元格邊框、新建表等等,這裡的工作簿、工作表、單元格、圖表就是Excel中的對象。

編寫VBA代碼就是用宏代碼的方式去操作這些對象


他們之間有嚴格的層次結構,先放一張工作簿和工作表單元格之間的包含關係簡圖,這篇文章就圍繞這張簡圖開始說起。


「VBA基礎」VBA中的對象你真的瞭解嗎?


我們看這裡的對象層次結構:Excel程序對象包含著工作簿對象,工作簿對象包含工作表對象,工作表對象又包含單元格對象。這些層次結構組成了Excel的對象模型。




→劃重點:

實際上Excel程序包含200多種對象,每個對象又有自己的屬性方法,一般需要的時候看幫助文件即可。幫助文件獲取方式見文末。


工作簿

先來說下工作簿對象:

在Excel中做的所有事情都在工作簿中,工作簿文件常見格式有xls、xlsx、xlsm

很多學VBA的朋友,學了大半年連它們之前的區別都是模模糊糊的。上次有個朋友直接拿xlsx來讓我幫助調試代碼,我真是哭笑不得。


「VBA基礎」VBA中的對象你真的瞭解嗎?


➜想更詳細的瞭解他們之間的區別的話看下面:

核心結構上:xls 是一個特有的二進制格式,其核心結構是複合文檔類型的結構,而 xlsx 的核心結構是 XML 類型的結構,採用的是基於 XML 的壓縮方式,使其佔用的空間更小。xlsx 中最後一個 x 的意義就在於此。


▪版本上:xls是2003版本下的文件 ,不管有沒有宏程序的話都是xls文件 ,從2007開始做了區分,XLSM文件和XLSX文件都是excel2007及其以後的文件,但前者是含有宏啟用,Excel中默認情況下不自動啟用宏,默認是XLSX。

VBA中,如果不想保存代碼,可以保存為xlsx,即可自動刪除其中VBA代碼,反之則保存為XLSM文件。


▪默認保存方式上:xls是03版Office Microsoft Office Excel 工作表的格式,用03版Office,新建Excel默認保存的Excel文件格式的後綴是.xls;xlsx是07版以及以後Office Microsoft Office Excel 工作表的格式,用07版以及以後版本的Office,新建Excel默認保存的的Excel文件格式後綴是.xlsx。


工作表

工作表對象也是Sheet對象。但是VBA裡面還有一個WorkSheet對象。他們之間到底是什麼區別呢?!


通俗來說,Sheet是統稱,Worksheet僅代表Sheet對象中的工作表的一種,Sheet對象還有其它類型的工作表,例如圖表工作表、Excel 4.0宏工作表(也稱作XLM文件)和Excel 5.0對話框工作表(允許創建自定義對話框)。


默認情況下,我們點擊+號,新建的就是日常使用的工作表WorkSheet對象。


「VBA基礎」VBA中的對象你真的瞭解嗎?


但是如果右鍵,點【插入】的話,就會有這幾種不太常見的Sheet對象

「VBA基礎」VBA中的對象你真的瞭解嗎?


這些被冷落的孩子藏在這麼隱蔽的地方。

「VBA基礎」VBA中的對象你真的瞭解嗎?


➜還有人對WorkSheets、WorkSheet分不清楚

顧名思義,有個"s"就是複數,Worksheets是Worksheet的集合,Sheets是sheet的集合,worksheets是sheets的子集。

我們一般在定義變量類型的時候使用WorkSheet:

<code>

Dim

sht As Worksheet/<code>


我們一般在遍歷工作表的時候使用WorkSheets

<code>

Sub

遍歷工作表()

For

Each

sht

In

ThisWorkbook

.Worksheets

MsgBox

sht

.Name

NextEnd

Sub

/<code>


或者引用某個工作表的時候使用

<code>

WorkSheets

(

"工作表名"

)/<code>

來引用相應的工作表。

集合的Count屬性返回工作簿中工作表的數量,而Sheets集合的Count屬性則返回工作簿中所有工作表的數量,包含圖表工作表和工作表。

一般來說,一個工作簿中,只包含一般工作表(沒圖表、宏表……)。Count數量也等,所以很多人把Sheets當作Worksheets的簡寫。


4單元格

單元格是Excel中最小單元,在Excel VBA中很多操作最終都是對於單元格的操作。

關於單元格對象的引用、屬性、方法,請看我之前的文章。這裡不做講解。


分享到:


相關文章: