EXCELVBA入門教程之元素篇-宏其實(shí)很簡單!
編按:當(dāng)今信息時代,會電腦的人基本上都在用Excel,對于更深的Excel高級技巧(宏),知道的人很多,掌握的卻寥寥,今天就來給大家介紹一下宏程序的元素,因?yàn)橹挥姓莆樟撕瓿绦虻幕驹兀闷饋聿拍艿眯膽?yīng)手。
一、對象與集合介紹
1、何為對象
“對象”代表應(yīng)用程序中的“元素”。如果在宏模塊中輸入語句“Range(“A1”)=2022”,則表示在A1單元格中輸入“2022”的數(shù)據(jù),換句話說,“Range(“A1”)”即表示A1單元格?!癛ange(“A1”) ”就是對象。

再舉個例子,工作簿為Workbook對象,工作表為Worksheet對象,單元格為Range對象,所有的操作目標(biāo)都是對象。最初的“Range(“A1”)=2022”是對A1單元格的Range對象輸入了“2022”的數(shù)值。

2、何為集合
集合是一種特殊的對象,它是一個包含多個同類對象的對象容器。比如,工作表是以Worksheet這個對象來表示,但是,大部分的工作簿中都包含有多個工作表,因此位于同一個工作簿中的所有工作表便以Worksheets來表示。像這樣由多個對象組成,稱為集合。
表示對象時,有的會以“集合中的1個”來進(jìn)行指定。
例如,聚集多個單張工作表(Worksheet)的集合為Worksheets,在指定其中的“Sheet2”這個特定的工作表時,就會使用像“Worksheets(“sheet2”)”這種表示方法來記錄。

如果要是表示工作表中的一個單元格,就指定工作表及其單元格兩個部分。例如工作表Sheet2的A1單元格應(yīng)指定成“Worksheets(“Sheet2”).Range(“A1”)”。注意,要在兩者之間加上“.”來表示。
當(dāng)執(zhí)行下面的宏,在工作表Sheet2的A1單元格中就會輸入“新春快樂”。

二、屬性介紹
1、何為屬性
如果假設(shè)“對象”為小狗,則“屬性”即為小狗的“重量”、“顏色”等。直接通過一個小例子來介紹“屬性”,下面是“把A1單元格的列寬設(shè)置為40”的宏代碼。

這里,“Range("A1")”表示的是A1單元格,而“ColumnWidth”則用來表示列寬。類似于“ColumnWidth”這種對“對象”的設(shè)置,便稱為屬性。屬性還有很多,如,“RowHeight”表示“行高”的屬性,“Value”表示“值”的屬性。
屬性要寫在對象的后面,要在兩者之間加上“.”。也就是“對象.屬性”這樣的形式。同樣如果編輯器中輸入“Range("A1"). RowHeight=40”就會將A1單元格的行高設(shè)置為40。
之前我們寫過“Range(“A1”)=2022”,就是將數(shù)據(jù)“2022”輸入到A1單元格中,但像這樣直接將數(shù)據(jù)輸入到對象的做法本來是不允許的。正確寫法是“Range(“A1”). Value=2022”。但是,?Excel中有把“Range(單元格)”作為“Range(單元格).Value”來處理的規(guī)則,因此,就算省去了 “Value”屬性也能順利運(yùn)行。
2、實(shí)際練習(xí)
下面,讓我們通過設(shè)置字體和顏色來鞏固一下 “對象”、“屬性”的相關(guān)知識吧!
要求:將“A1:I1”單元格區(qū)域的字體大小設(shè)置為12,顏色設(shè)置為紅色。需要說明“ColorIndex”為設(shè)置“顏色”的屬性,“Size”為設(shè)置“大小”的屬性。
1).分析
如果以“Range(“A1:E1”).Size”來設(shè)置適當(dāng)?shù)闹?,似乎就能簡單的更改字體大小,實(shí)際上僅僅這樣操作就會發(fā)生錯誤。屬性并非對任何對象都能設(shè)置。不能直接對“Range”對象設(shè)置“Size”屬性。要對“Font”對象設(shè)置 “Size”屬性?!癋ont”是表示字體屬性的的對象?!癋ont”對象位于“Range”對象的下一級。因此,將“A1:I1”單元格區(qū)域的字體大小設(shè)置為12的語句為“Range("A1:E1").Font.Size = 12” 。同樣,使用“ColorIndex”為設(shè)置顏色編號的屬性,其顏色編號與顏色的對照為,黑色代碼為1,白的代碼為2,紅色代碼為3,綠色代碼為4,藍(lán)色代碼為5,黃色代碼為6,紫色代碼為7,青色代碼為8,將“A1:I1”單元格區(qū)域的字體顏色設(shè)置為紅色的語句為“Range("A1:E1").Font.ColorIndex = 3” 。
2).具體步驟
①單擊“開發(fā)工具”選項(xiàng)卡下的“代碼”選項(xiàng)組中的“Visual Basic”按鈕。
②打開“Visual Basic”窗口,選擇“插入”、“模塊”選項(xiàng),彈出“工作簿-模塊1”窗口。
③將以下代碼輸入或復(fù)制到“工作簿-模塊1”窗口中。
“Sub?更改字體()
Range("A1:I1").Font.Size = 12
Range("A1:I1").Font.ColorIndex = 3
End Sub”。
其中,Sub是宏過程,End Sub是結(jié)束宏過程,一個過程就是執(zhí)行某項(xiàng)動作的一套指令,Sub過程不返回運(yùn)行的結(jié)果,在這個過程中需要執(zhí)行的代碼放在中間。
④編寫完宏后,選擇“文件”、“關(guān)閉并返回到Microsoft Excel”選項(xiàng),即可關(guān)閉窗口。
⑤在“開發(fā)工具”選項(xiàng)卡下“代碼”選項(xiàng)組中的“宏”按鈕上單擊,在彈出的快捷菜單中選擇“執(zhí)行”命令。即可運(yùn)行宏。

三、方法介紹
1.何為方法
所謂“方法”就是指針對“對象”所進(jìn)行的處理,以“清除”和“刪除”兩個為例來說明“方法”的應(yīng)用。在清除單元格區(qū)域時,要對“Range”對象使用“Clear”方法,例如清除單元格區(qū)域“D1:D10”時,就可執(zhí)行“Range("D1:D10").Clear”的宏。這個宏表示對Range("D1:D10")對象執(zhí)行“Clear”方法。在編寫時,對象和方法之間也要加上“.”。

剛才的“清除”是用來清除設(shè)置在單元格中的值,但單元格還會被保留下來,下面來學(xué)習(xí)“刪除”操作的宏,該操作會將單元格本身整個刪除。因此,單元格被刪除后,其工作表中的單元格結(jié)構(gòu)也會發(fā)生變化。刪除單元格區(qū)域的方法為“Delete”,下面的宏會刪除單元格區(qū)域“D1:D10”。執(zhí)行“Range("D1:D10").Delete”的宏。這個宏表示對Range("D1:D10")對象執(zhí)行“Delete”方法。在編寫時,對象和方法之間也要加上“.”。

2.方法的參數(shù)
在方法中設(shè)置細(xì)節(jié)的工作便成為“參數(shù)”。比如以“Delete”方法刪除的移動方向也能由用戶自行指定,下面讓其刪除后向上移動的設(shè)置,“Range("D4:D7").Delete xlShiftUp”,輸入方法“Delete”后空一格再輸入“xlShiftUp”,就可以當(dāng)“D4:D7”被刪除后“D8:D10”單元格自動向上移動。

OK,今天春風(fēng)通過淺顯易懂的語言,為小伙伴們介紹了宏中涉及到的“對象”、“屬性”、“方法”,希望大家下次遇到這些元素時對他們不再陌生。
本文配套的練習(xí)課件請加入QQ群:902294808下載。
做Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!
相關(guān)推薦:
將excel中的數(shù)據(jù)按照指定數(shù)量進(jìn)行重復(fù),非得用VBA才能實(shí)現(xiàn)嗎?
如何在特定位置批量插入空行等12種實(shí)用辦公技巧
4種刪除excel重復(fù)值的小妙招,速收藏
Power Query的數(shù)據(jù)替換技巧比Excel函數(shù)更萬能!
版權(quán)申明:
本文作者賦春風(fēng);同時部落窩教育享有專有使用權(quán)。若需轉(zhuǎn)載請聯(lián)系部落窩教育。