前陣子很火的一張惡搞圖
看到來自于Excel的嘲諷了嗎?
? ?°??°?
這篇文章就帶你認(rèn)識Excel中的對象概念,了解一下Excel中的常見對象:工作簿、工作表、單元格。好好學(xué),在Excel中一定找的到對象!
在使用Excel開發(fā)VBA程序的時(shí)候,從對象的角度進(jìn)行思考是很有幫助的。因?yàn)槿粘9ぷ髦形覀兙褪?span style="color: rgb(61, 167, 66);">手動操作這些對象。
新建工作簿、新建工作表、向單元格輸入值、修改單元格邊框、新建表等等,這里的工作簿、工作表、單元格、圖表就是Excel中的對象。
編寫VBA代碼就是用宏代碼的方式去操作這些對象。
他們之間有嚴(yán)格的層次結(jié)構(gòu),先放一張工作簿和工作表單元格之間的包含關(guān)系簡圖,這篇文章就圍繞這張簡圖開始說起。
我們看這里的對象層次結(jié)構(gòu):Excel程序?qū)ο蟀ぷ鞑緦ο?,工作簿對象包含工作表對象,工作表對象又包含單元格對象?/strong>這些層次結(jié)構(gòu)組成了Excel的對象模型。
→劃重點(diǎn):
實(shí)際上Excel程序包含200多種對象,每個(gè)對象又有自己的屬性方法,一般需要的時(shí)候看幫助文件即可。幫助文件獲取方式見這篇文章《用好VBA官方文檔,勝過任何教材!》。
官方幫助文件中羅列的很詳細(xì):
先來說下工作簿對象:
在Excel中做的所有事情都在工作簿中,工作簿文件常見格式有xls、xlsx、xlsm。
很多學(xué)VBA的朋友,學(xué)了大半年連它們之前的區(qū)別都是模模糊糊的。上次有個(gè)朋友直接拿xlsx來讓我?guī)椭{(diào)試代碼,我真是哭笑不得。
格式 | 行數(shù)x列數(shù) | 儲存代碼 | 存在版本 |
xls | 65536x256 | 能 | 03版本以及之前 |
xlsx | 1048576x16384 | 不能 | 07版本以及以后 |
xlsm | 1048576x16384 | 能 | 07版本以及以后 |
?想更詳細(xì)的了解他們之間的區(qū)別的話看下面:
?核心結(jié)構(gòu)上:xls 是一個(gè)特有的二進(jìn)制格式,其核心結(jié)構(gòu)是復(fù)合文檔類型的結(jié)構(gòu),而 xlsx 的核心結(jié)構(gòu)是 XML 類型的結(jié)構(gòu),采用的是基于 XML 的壓縮方式,使其占用的空間更小。xlsx 中最后一個(gè) x 的意義就在于此。
?版本上:xls是2003版本下的文件 ,不管有沒有宏程序的話都是xls文件 ,從2007開始做了區(qū)分,XLSM文件和XLSX文件都是excel2007及其以后的文件,但前者是含有宏啟用,Excel中默認(rèn)情況下不自動啟用宏,默認(rèn)是XLSX。
VBA中,如果不想保存代碼,可以保存為xlsx,即可自動刪除其中VBA代碼,反之則保存為XLSM文件。
?默認(rèn)保存方式上:xls是03版Office Microsoft Office Excel 工作表的格式,用03版Office,新建Excel默認(rèn)保存的Excel文件格式的后綴是.xls;xlsx是07版以及以后Office Microsoft Office Excel 工作表的格式,用07版以及以后版本的Office,新建Excel默認(rèn)保存的的Excel文件格式后綴是.xlsx。
工作表對象也是Sheet對象。但是VBA里面還有一個(gè)WorkSheet對象。他們之間到底是什么區(qū)別呢?!
通俗來說,Sheet是統(tǒng)稱,Worksheet僅代表Sheet對象中的工作表的一種,Sheet對象還有其它類型的工作表,例如圖表工作表、Excel 4.0宏工作表(也稱作XLM文件)和Excel 5.0對話框工作表(允許創(chuàng)建自定義對話框)。
默認(rèn)情況下,我們點(diǎn)擊+號,新建的就是日常使用的工作表WorkSheet對象。
但是如果右鍵,點(diǎn)【插入】的話,就會有這幾種不太常見的Sheet對象。
這些被冷落的孩子藏在這么隱蔽的地方。
?還有人對WorkSheets、WorkSheet分不清楚。
顧名思義,有個(gè)"s"就是復(fù)數(shù),Worksheets是Worksheet的集合,Sheets是sheet的集合,worksheets是sheets的子集。
我們一般在定義變量類型的時(shí)候使用WorkSheet:
Dim sht As Worksheet
我們一般在遍歷工作表的時(shí)候使用WorkSheets。
Sub 遍歷工作表()
For Each sht In ThisWorkbook.Worksheets
MsgBox sht.Name
Next
End Sub
或者引用某個(gè)工作表的時(shí)候使用
WorkSheets("工作表名")
來引用相應(yīng)的工作表。
集合的Count屬性返回工作簿中工作表的數(shù)量,而Sheets集合的Count屬性則返回工作簿中所有工作表的數(shù)量,包含圖表工作表和工作表。
一般來說,一個(gè)工作簿中,只包含一般工作表(沒圖表、宏表……)。Count數(shù)量也等,所以很多人把Sheets當(dāng)作Worksheets的簡寫。
單元格是Excel中最小單元,在Excel VBA中很多操作最終都是對于單元格的操作。
關(guān)于單元格對象的引用、屬性、方法,請看我之前的文章。這里不做講解。
VBA交流群③群也馬上滿員了,想入群交流VBA的朋友速速掃碼,邀請你加入交流④群!
聯(lián)系客服