版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Excel編程與VBA第九講Range對(duì)象Excel編程與VBA第九講1Content在VBA代碼中,用得最多的單獨(dú)的對(duì)象可能就要算Range對(duì)象了。Range對(duì)象是Excel的對(duì)象世界中真正的工作對(duì)象。作為Excel用戶,將把大部分時(shí)間花在對(duì)Range對(duì)象的處理上。在本次課程中,將學(xué)習(xí)多種對(duì)Range對(duì)象進(jìn)行處理的技術(shù),重點(diǎn)包括:理解Range對(duì)象的作用使用With語句使用ForEach語句分析幾個(gè)使用Range對(duì)象的過程Content在VBA代碼中,用得最多的單獨(dú)的對(duì)象可能Range對(duì)象是什么?作為Excel用戶,基本上是和工作表上的單元格打交道。而在VBA中,則稱為和Range對(duì)象打交道。對(duì)于一個(gè)程序員來說,在所有的Excel對(duì)象中,對(duì)Range對(duì)象的處理是最頻繁的。正因?yàn)槿绱?,在本課程中,將學(xué)習(xí)有關(guān)Range對(duì)象的各種知識(shí)。一個(gè)Range對(duì)象可以是:一個(gè)單獨(dú)的單元格。對(duì)單元格的選擇。多個(gè)選擇。一行或者一列。一個(gè)3D區(qū)域。Range對(duì)象是什么?作為Excel用戶,基本上是和一、Range對(duì)象的屬性和學(xué)習(xí)其他對(duì)象一樣,首先需要學(xué)習(xí)Range對(duì)象的一些屬性和方法。Range對(duì)象最有用的一些屬性如下:Address屬性返回Range的當(dāng)前位置。Count屬性用于決定Range中單元格的數(shù)目。Formula屬性返回用于計(jì)算顯示值的公式。
Offset屬性對(duì)于從一個(gè)Range移動(dòng)到另一個(gè)Range非常有用。?含義,下面有Resize通過它可設(shè)置當(dāng)前選中的Range的大小。Value返回Range的數(shù)值。在上面的清單中列出的屬性只是Range對(duì)象屬性很小的一部分,實(shí)際上,Range對(duì)象的屬性多達(dá)幾十個(gè)。在下面的例題中,將熟悉Range對(duì)象的一些屬性。在開始前,關(guān)閉所有的工作簿,并打開一個(gè)新的工作簿。接著從創(chuàng)建一個(gè)新的工作表開始:一、Range對(duì)象的屬性和學(xué)習(xí)其他對(duì)象一樣,首先需要一、Range對(duì)象的屬性(Cont)1)在單元格B1中輸入“100”,在單元格B2中輸入“200”,在單元格B3中輸入“300”。2)選中單元格B4,并輸入“=SUM(B1:B3)”。3)按下Alt+F11鍵打開VisualBasic編輯器,在當(dāng)前工作簿中插入一個(gè)新的模塊。4)創(chuàng)建一個(gè)名為“RangeProperties”的過程。5)為該過程輸入如下代碼:ThisWorkbook.Worksheets("Sheet1").Range("A1").Activate
ActiveCell.Offset(2,2).ActivateMsgBox"Thecurrentactivecellis"&ActiveCell.AddressMsgBox"ThevalueofB4is"&Range("B4").ValueMsgBox"TheformulaofB4is"&Range("B4").Formula6)回到工作簿的Sheet1,運(yùn)行RangeProperties過程。顯示的第一個(gè)消息框告訴你激活的單元格為C3。7)單擊“確定”按鈕,下一個(gè)消息框顯示單元格B4的數(shù)值。一、Range對(duì)象的屬性(Cont)1)在單元格B1一、Range對(duì)象的屬性(Cont)8)單擊“確定”按鈕,最后一個(gè)消息框顯示單元格B4的計(jì)算公式。9)單擊“確定”按鈕,退出消息框。熟悉上面例子中顯示信息的細(xì)微區(qū)別了嗎?為了確保對(duì)本例中代碼的理解,請(qǐng)花一點(diǎn)時(shí)間復(fù)習(xí)一下。1:SubRangeProperties()2:ThisWorkbook.Worksheets("Sheet1").Range("A1").Activate3:ActiveCell.Offset(2,2).Activate4:MsgBox"Thecurrentactivecellis"&ActiveCell.Address5:6:MsgBox"ThevalueofB4is"&Range("B4").Value7:MsgBox"TheformulaofB4is"&Range("B4").Formula8:EndSub在本過程中,做的第一件事是激活單元格A1:ThisWorkbook.Worksheets("Sheet1").Range("A1").Activate一、Range對(duì)象的屬性(Cont)8)單擊“確定”按鈕,一、Range對(duì)象的屬性(Cont)激活單元格A1之后,用Offset方法移動(dòng)到單元格C3,并且在消息框中顯示新激活的單元格的地址:ActiveCell.Offset(2,2).ActivateMsgBox"Thecurrentactivecellis"&ActiveCell.Address通過Offset屬性,可以移動(dòng)到另一個(gè)Range位置,這個(gè)屬性的語法如下:
Rangename.Offset(RowOffset,ColumnOffset)可選參數(shù)RowOffset和ColumnOffset控制移動(dòng)的方向。在本過程中,將這兩個(gè)參數(shù)均設(shè)置為2,這就將Range移動(dòng)到了C3。接下來是顯示單元格B4的數(shù)值和計(jì)算公式:MsgBox"ThevalueofB4is"&Range("B4").ValueMsgBox"TheformulaofB4is"&Range("B4").Formula這兩行代碼很好地說明了Range對(duì)象的Value屬性和Formula屬性的區(qū)別。Value屬性返回顯示在單元格中的數(shù)值,而Formula屬性則返回單元格中實(shí)際輸入的公式。一、Range對(duì)象的屬性(Cont)激活單元格A1之二、Range對(duì)象的方法Range對(duì)象同樣具有多種多樣的方法,包括:Activate激活一個(gè)Range。Clear清除一個(gè)Range的內(nèi)容。Copy將一個(gè)Range的內(nèi)容復(fù)制到剪貼板。Cut將一個(gè)Range的內(nèi)容剪切到剪貼板。PasteSpecial將剪貼板的內(nèi)容粘貼到Range中。Select選擇一個(gè)Range。二、Range對(duì)象的方法Range對(duì)象同樣具有多種多樣的方法粘貼方法Range("F3").PasteSpecialActiveSheet.Paste他們的不同?粘貼方法三、使用With語句現(xiàn)在,你對(duì)Excel中最常用的對(duì)象已經(jīng)比較熟悉了。接下來,將學(xué)習(xí)一個(gè)結(jié)構(gòu),通過這個(gè)結(jié)構(gòu)可以使對(duì)對(duì)象的處理更為容易。當(dāng)對(duì)Range對(duì)象進(jìn)行處理時(shí),一個(gè)最普通的任務(wù)是設(shè)置各種各樣的屬性。下面程序顯示了用于對(duì)Range對(duì)象執(zhí)行各種格式設(shè)置的代碼的例子。1:Range("A1:A6").NumberFormat="#,##0.00"2:Range("A1:A6").Font.Name="CourierNew"3:Range("A1:A6").Font.FontStyle="Regular"4:Range("A1:A6").Font.Size=115:Range("A1:A6").Font.Strikethrough=False6:Range("A1:A6").Font.Superscript=False7:Range("A1:A6").Font.Subscript=False8:Range("A1:A6").Font.OutlineFont=False9:Range("A1:A6").Font.Shadow=False10:Range("A1:A6").Font.Underline=xlUnderlineStyleNone11:Range("A1:A6").Font.ColorIndex=xlAutomatic如果需要輸入上述代碼,就會(huì)對(duì)重復(fù)地輸入Range(“A1:A6”)感到厭煩。可以用對(duì)象變量來引用Range("A1:A6"),但是仍然需要重復(fù)地輸入對(duì)象變量的名字。三、使用With語句現(xiàn)在,你對(duì)Excel中最常用的三、使用With語句(Cont)VBA提供了一種避免這樣的方式—With語句。With語句用于設(shè)置同一對(duì)象的多個(gè)屬性,或者執(zhí)行同一對(duì)象的多個(gè)方法。下面程序顯示了使用With語句完成同樣功能的代碼。1:WithRange("A1:A6")2:.NumberFormat="#,##0.00"3:With.Font4:.Name="CourierNew"5:.FontStyle="Regular"6:.Size=117:.Strikethrough=False8:.Superscript=False9:.Subscript=False10:.OutlineFont=False11:.Shadow=False12:.Underline=xlUnderlineStyleNone13:.ColorIndex=xlAutomatic14:EndWith15:EndWith三、使用With語句(Cont)VBA提供了一種避免三、使用With語句(Cont)雖然程序清單中的With語句并沒有減少代碼的行數(shù),但是減少了輸入量。With語句的語法如下:Withobject[statements]EndWith語法中的object是statements部分中的屬性和方法的操作對(duì)象。從上述代碼中可以看出,statements中的每一行都以符號(hào)“.”開始。同樣需要注意的是,可以將With語句嵌套使用。針對(duì)Font對(duì)象的With語句嵌套在針對(duì)Range對(duì)象的With語句中。下面程序代碼舉例說明了如何在同一個(gè)With語句中使用屬性和方法。1:SubWith_Worksheet()2:WithThisWorkbook3:.SaveAs"WithExample"4:MsgBox"SaveStatus:"&.Saved5:EndWith6:EndSub三、使用With語句(Cont)雖然程序清單中的W四、使用ForEach語句With語句是用來執(zhí)行同一個(gè)對(duì)象的多個(gè)語句,而ForEach語句則是用來對(duì)多個(gè)對(duì)象執(zhí)行同一條語句。通過ForEach語句,可以對(duì)集合中的每個(gè)元素重復(fù)執(zhí)行同樣的語句。ForEach語句也可用于數(shù)組。ForEach語句的語法如下:
ForEachelementIngroup[Statements][ExitFor][Statements]Next注意,該語法支持ExitFor從句。和其他Exit從句一樣,ExitFor從句通常位于一條If語句中。如果需要改變Range中每個(gè)單元格的數(shù)值,可以使用以下的代碼。四、使用ForEach語句With語句是用來執(zhí)行同四、使用ForEach語句(Cont)1:SubForExample()2:DimxAsRange3:4:ForEachxInThisWorkbook.Worksheets("Sheet1").Range("A1:A6")5:x.Value=x.Value+106:Next7:EndSub四、使用ForEach語句(Cont)1:SubFor五、Range對(duì)象編程示例(一)在本部分中,將看到多個(gè)使用Range對(duì)象的代碼示例。這些代碼示例是程序員最常用的。本例是改變一個(gè)Range中每行的格式設(shè)置。對(duì)于一張很長(zhǎng)的工作表,為了使它易于查看和打印,常常需要這樣做。注意第一行是標(biāo)題。需要將從第三行開始的內(nèi)容隔行加粗。程序如下。1:SubBoldEveryOther()2:DimiCounterAsInteger3:ForiCounter=3ToThisWorkbook.Worksheets("Sheet1")._Range("A1:C25").Rows.CountStep24:ThisWorkbook.Worksheets("Sheet1").Range("A1:C25")._Rows(iCounter).Font.Bold=True5:Next6:EndSub本過程中主要的關(guān)鍵在于ForNext語句。注意iCounter設(shè)置的初始值為3,即從第三行開始隔行加粗。Step的值為2決定了是隔行加粗。如果知道需要處理的Range對(duì)象的地址,那么本例中的代碼非常適用。五、Range對(duì)象編程示例(一)在本部分中,將看到多五、Range對(duì)象編程示例(二)但是如果不知道Range對(duì)象的大小時(shí),又應(yīng)該怎么辦呢?有關(guān)這方面的一個(gè)經(jīng)典的例子是,當(dāng)從其他應(yīng)用程序(例如數(shù)據(jù)庫)向工作表中導(dǎo)入數(shù)據(jù)時(shí)的情況,也許并不知道會(huì)返回多少行數(shù)據(jù)。下面代碼顯示了選中一個(gè)不知道大小的Range的例子。1:SubSelectRange()2:ThisWorkbook.Worksheets("Sheet1").Range("A1").Activate3:ActiveCell.CurrentRegion.Select4:MsgBox"Theaddressoftheselectedrange"&Selection.Address5:EndSubSelectRange的關(guān)鍵之處在于CurrentRegion屬性的使用,本屬性返回第一個(gè)空行和空列所包圍的區(qū)域。通過選中CurrentRegion,用不著知道Range的大小。 currentregion選出的是連續(xù)的區(qū)域,不連續(xù)則僅一部分五、Range對(duì)象編程示例(二)但是如果不知道Ran五、Range對(duì)象編程示例(三)最后一個(gè)過程將執(zhí)行復(fù)制/粘貼操作。在下面
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- (立項(xiàng)說明)工業(yè)合成油項(xiàng)目投資計(jì)劃書
- 石河子大學(xué)《儀器分析實(shí)驗(yàn)》2022-2023學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《書寫技能訓(xùn)練一》2021-2022學(xué)年第一學(xué)期期末試卷
- 石河子大學(xué)《經(jīng)典音樂歌舞電影賞析》2022-2023學(xué)年期末試卷
- 沈陽理工大學(xué)《數(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 沈陽理工大學(xué)《科技文獻(xiàn)檢索》2022-2023學(xué)年第一學(xué)期期末試卷
- 2018年四川內(nèi)江中考滿分作文《我心中的英雄》21
- 沈陽理工大學(xué)《Matab原理與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴州新概念新型材料合同套路
- 合肥市場(chǎng)監(jiān)管局股權(quán)質(zhì)押合同模板
- 電子商務(wù)師職業(yè)技能等級(jí)證書培訓(xùn)方案
- JBT 14615-2024 內(nèi)燃機(jī) 活塞運(yùn)動(dòng)組件 清潔度限值及測(cè)定方法(正式版)
- DL5009.2-2013電力建設(shè)安全工作規(guī)程第2部分:電力線路
- 八年級(jí)下冊(cè) 第六單元 23《馬說》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 理智與情感:愛情的心理文化之旅智慧樹知到期末考試答案章節(jié)答案2024年昆明理工大學(xué)
- GA/T 2097-2023執(zhí)法辦案管理場(chǎng)所信息應(yīng)用技術(shù)要求
- GB 20052-2024電力變壓器能效限定值及能效等級(jí)
- 陶行知與鄉(xiāng)村教育智慧樹知到期末考試答案章節(jié)答案2024年麗水學(xué)院
- 手術(shù)切口感染PDCA案例
- 依托國家中小學(xué)智慧教育平臺(tái)開展有效教學(xué)的研究課題申報(bào)評(píng)審書
- 小學(xué)大思政課實(shí)施方案設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論