《Office高級應(yīng)用教程》課件-第5章 VBA基礎(chǔ)與應(yīng)用_第1頁
《Office高級應(yīng)用教程》課件-第5章 VBA基礎(chǔ)與應(yīng)用_第2頁
《Office高級應(yīng)用教程》課件-第5章 VBA基礎(chǔ)與應(yīng)用_第3頁
《Office高級應(yīng)用教程》課件-第5章 VBA基礎(chǔ)與應(yīng)用_第4頁
《Office高級應(yīng)用教程》課件-第5章 VBA基礎(chǔ)與應(yīng)用_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Office2010進(jìn)階篇學(xué)習(xí)目標(biāo):VBA的基本語法VBA控制的對象VBA編程基本控制語句VBA程序結(jié)構(gòu)VBAExcel中宏的應(yīng)用VBA對Excel的基本操作運(yùn)用VBA進(jìn)行Excel函數(shù)的自定義運(yùn)用VBA對Excel數(shù)據(jù)進(jìn)行處理和分析第5章VBA基礎(chǔ)與應(yīng)用5.1VBA基礎(chǔ)知識(shí)學(xué)習(xí)目標(biāo):

掌握VBA編程的基本語法熟悉VBA編程對象的概念及其屬性和方法掌握VBA語句的三種結(jié)構(gòu)掌握VBA常用過程的應(yīng)用5.1.1VBA基本語法1.常量(1)直接常量

直接常量是指在程序中可以直接使用的量,包括整型、長整型、單精度實(shí)型、雙精度實(shí)型、貨幣型、字符型、日期型、字節(jié)型和布爾型等9種類型。(2)符號(hào)常量

符號(hào)常量是一種代替直接常量的標(biāo)識(shí)符。在聲明定義時(shí),符號(hào)常量的值是固定的:在使用過程中,符號(hào)常量不能被改變或者賦予其他的新值。2.變量(1)局部變量①使用Dim語句聲明局部變量②使用Static語句聲明局部變量(2)模塊變量模塊變量是在同一窗體或者模塊中的不同過程中使用的同一個(gè)變量。(3)全局變量全局變量是指可以被應(yīng)用程序中的所有模塊和窗體訪問的變量,全局變量只能在模塊說明部分聲明,然后使用Public語句聲明全局變量。5.1.1VBA基本語法3.?dāng)?shù)據(jù)類型5.1.1VBA基本語法數(shù)據(jù)類型數(shù)據(jù)名稱存儲(chǔ)空間使用范圍Byte字節(jié)型1字節(jié)0~255Boolen布爾型2字節(jié)True或者FalseInteger整型2字節(jié)-32768~32767Long長整型4字節(jié)-2147483648~2147483647Single單精度浮點(diǎn)型4字節(jié)負(fù)數(shù)時(shí):-3.402823E38~-1.401298E-45正數(shù)時(shí):1.401298E-45~3.402823E38Double雙精度浮點(diǎn)型8字節(jié)負(fù)數(shù)時(shí):-1.7976313486231E308~-4.94065645841247E-324正數(shù)時(shí):4.94065645841247E-324~1.7976313486231E308Currency貨幣型8字節(jié)-9223372036854775808~9223372036854775807Decimal十進(jìn)制小數(shù)型14字節(jié)沒有小數(shù)時(shí):+79228162514264337593543950335有28位小數(shù)時(shí):+7.9228162514264337593543950335最小的非零值:+0.000000000000000000000015.1.1VBA基本語法數(shù)據(jù)類型數(shù)據(jù)名稱存儲(chǔ)空間使用范圍Date日期型8字節(jié)1000年1月1日~9999年12月31日Object對象4任何的ObjectString(定)定長字符串字符串長1~64K個(gè)字符String(變)變長字符串10字節(jié)+字符串長0~約20億個(gè)字符Varient(數(shù)字)變體數(shù)字型16字節(jié)任何數(shù)字,最大可達(dá)Double類型的范圍Varient(文本)變體字符型22字節(jié)+字符串長0~約20億個(gè)字符3.?dāng)?shù)據(jù)類型4.運(yùn)算符與表達(dá)式5.1.1VBA基本語法(1)算術(shù)運(yùn)算符算符運(yùn)算符名稱語法:Result=功能說明+加法exp1+exp2正號(hào)或者加法運(yùn)算-減法exp1-expr2負(fù)號(hào)或者減法運(yùn)算*乘法exp1*exp2乘法運(yùn)算/除法exp1/exp2除法運(yùn)算\整除exp1\exp2整除運(yùn)算Mod求余exp1

Modexp2求余數(shù)運(yùn)算^指數(shù)Number^exponent乘冪運(yùn)算5.1.1VBA基本語法(2)比較運(yùn)算符比較運(yùn)算符名稱語法:Result=功能說明=等于exp1=exp2相等返回True,否則返回False<>不等于exp1<>exp2不相等返回True,否則返回False>大于exp1>exp2大于返回True,否則返回False<小于exp1<exp2小于返回True,否則返回False>=大于等于exp1>=exp2大于等于返回True,否則返回False<=小于等于exp1<=exp2小于等于返回True,否則返回FalseIs對象比較Object1Isobject對象相等返回True,否則返回FalseLike字符串比較stringLikepattern字符串匹配樣本返回True,否則返回False4.運(yùn)算符與表達(dá)式(3)連接運(yùn)算符連接運(yùn)算符的作用是將兩個(gè)表達(dá)式作為字符串強(qiáng)制地連接在一起,它包含“&”和“+”運(yùn)算符?!?”運(yùn)算符用于將其他類型的數(shù)據(jù)轉(zhuǎn)換為字符串?dāng)?shù)據(jù):而“+”運(yùn)算符則只有在兩個(gè)表達(dá)式都是字符串?dāng)?shù)據(jù)時(shí),才能將兩個(gè)字符串連接成一個(gè)新的字符串。使用連接運(yùn)算符的語法如下:Result=exp1&exp25.1.1VBA基本語法4.運(yùn)算符與表達(dá)式5.1.1VBA基本語法(4)邏輯運(yùn)算符邏輯運(yùn)算符名稱語法:Result=功能說明And邏輯與exp1Andexp2兩個(gè)表達(dá)式同為True則結(jié)果為True,否則為FalseOr邏輯或exp1Orexp2兩個(gè)表達(dá)式同為False則結(jié)果為False,否則為TrueNot邏輯非Notexp1表達(dá)式1為True則結(jié)果為False,否則為TrueXor邏輯異或exp1Xorexp2兩個(gè)表達(dá)式相同結(jié)果為False,否則為TrueEqv邏輯等價(jià)exp1Eqvexp2兩個(gè)表達(dá)式相同結(jié)果為True,否則為FalseImp邏輯蘊(yùn)涵exp1Impexp2只有表達(dá)式1為True且表達(dá)式2為False時(shí)結(jié)果為False,其余情況結(jié)果都為True4.運(yùn)算符與表達(dá)式5.1.1VBA基本語法(5)運(yùn)算符的優(yōu)先級運(yùn)算符運(yùn)算符名稱優(yōu)先級別^和.指數(shù)和從屬連接1-取負(fù)2*和/乘法和除法3\整除4Mod求余5+和-加法和減法6&連接符號(hào)7=、<>、>、<、>=和<=比較運(yùn)算符8Not、And、Or、Xor、Eqv和Imp邏輯運(yùn)算符94.運(yùn)算符與表達(dá)式5.1.2VBA對象1.Applacation對象屬性說明ActiveCell代表當(dāng)前工作表中被選中的單元格ActiveSheet代表當(dāng)前正在作用中的工作表ActiveWorkbook代表當(dāng)前正在作用的工作簿Caption設(shè)置應(yīng)用程序的標(biāo)題欄名稱Height設(shè)置應(yīng)用程序的高度Left設(shè)置應(yīng)用程序左方的坐標(biāo)位置Top設(shè)置應(yīng)用程序頂端的坐標(biāo)位置Width設(shè)置應(yīng)用程序的寬度DisplayAlert設(shè)置宏執(zhí)行時(shí)是否要出現(xiàn)特定的警告窗口,默認(rèn)值為TrueStatusBar傳回或者設(shè)置狀態(tài)列上的文字WindowState設(shè)置應(yīng)用程序的窗口狀態(tài),可設(shè)置的值由xlMaximized(最大化)、xlNormal(正常)、xlMinimized(最小化)方法說明Quit推出應(yīng)用程序5.1.2VBA對象2.Workbooks對象Workbook對象的常用屬性和方法:屬性說明ActiveSheet返回當(dāng)前的工作表,此為只讀屬性Author返回或者設(shè)置摘要信息中的用戶名稱Path返回當(dāng)前打開文件的完整路徑,但是不包括文件名稱Saved檢查工作簿中是否有未保存的變更項(xiàng)目方法說明Active將指定的工作簿激活Close將指定的工作簿關(guān)閉Save將指定的工作簿保存SaveAs將指定的工作簿另存為新文件5.1.2VBA對象Workbooks對象的常用屬性和方法:屬性說明Count當(dāng)前打開的工作簿的數(shù)量Item可用來指定工程表,指定方式可以是索引值或者工作表名稱,索引值由1開始計(jì)算,并且最先被打開的工作表的索引值為1方法說明Add增加一個(gè)工作簿Close關(guān)閉指定工作簿Open打開已經(jīng)存在的工作簿2.Workbooks對象5.1.2VBA對象3.Worksheets對象屬性說明Cells選中指定的單元格Columns選中指定列Name取得或者設(shè)置工作表的名稱Names取得工作表集合的名稱Range返回Range對象,用來選中指定的單元格或者單元格區(qū)域Rows選中指定行Visible設(shè)置是否顯示工作表方法說明Activate激活工作表Copy復(fù)制單元格Delete刪除單元格Move移動(dòng)單元格Select選擇單元格Worksheet對象的屬性和方法:5.1.2VBA對象Worksheets對象的屬性和方法:屬性說明Count顯示當(dāng)前工作簿中的工作表數(shù)量Item以工作表名稱或者索引值返回指定的工作對象Visible設(shè)置是否顯示工作表方法說明Add插入一個(gè)工作表Copy復(fù)制工作表Delete刪除工作表Move移動(dòng)工作表3.Worksheets對象5.1.3VBA控制語句1.順序結(jié)構(gòu)語句(1)賦值語句①給內(nèi)存變量賦值[Let]<變量名>﹦<表達(dá)式>②給對象的屬性賦值<對象>.<屬性>=<屬性值>(2)輸入輸出語句①輸入數(shù)據(jù)在VBA中一般使用InputBox函數(shù)輸入數(shù)據(jù)。該函數(shù)的語法如下:InputBox(prompt,[title][,default][,xpos][,ypos][,helpfile,context])②輸出數(shù)據(jù)在VBA中可以使用Print函數(shù)和MsgBox函數(shù)輸出數(shù)據(jù)。Print函數(shù)的語法如下:[<對象>.]print[<表達(dá)式表>][;|,][<表達(dá)式表>]5.1.3VBA控制語句1.順序結(jié)構(gòu)語句5.1.3VBA控制語句2.選擇結(jié)構(gòu)語句(1)If-Then語句If-Then語句的作用是根據(jù)給定的邏輯表達(dá)式判斷條件是否成立,然后根據(jù)判斷結(jié)果選擇執(zhí)行的語句。If-Then有以下兩種形式。①單行結(jié)構(gòu)的If-Then語句語法1:If<邏輯表達(dá)式>Then<語句>語法2:If<邏輯表達(dá)式>Then<語句1>Else<語句2>②塊結(jié)構(gòu)的lf-Then語句語法1:If<邏輯表達(dá)式>Then<語句塊>EndIf5.1.3VBA控制語句語法2:If<邏輯表達(dá)式>Then<語句塊1>Else<語句塊2>EndIf語法3:If<邏輯表達(dá)式1>Then<語句塊1>ElseIf<邏輯表達(dá)式2>Else<語句塊2>……<語句塊n>EndIfEndIf2.選擇結(jié)構(gòu)語句5.1.3VBA控制語句(2)SelectCase語句SelectCase語句的作用是根據(jù)表達(dá)式的值決定執(zhí)行程序中某些固定的語句,通常用于3個(gè)或者更多選項(xiàng)之間的選擇。該語句的語法如下。SelectCase<測試表達(dá)式>Case<表達(dá)式1><語句塊1>Case<表達(dá)式2><語句塊2>……2.選擇結(jié)構(gòu)語句Case<表達(dá)式n><語句塊n>[CaseElse]<語句塊n+1>EndSelect5.1.3VBA控制語句3.循環(huán)結(jié)構(gòu)語句(1)For-Next語句For-Next語句通常在指定循環(huán)次數(shù)的情況下進(jìn)行重復(fù)性操作。其語法如下。For<循環(huán)變量>=<初值>To<終值>[Step<步長值>]<循環(huán)體>Next<循環(huán)變量>For-Next語句中必須有一個(gè)用于計(jì)數(shù)的變量,并且每次進(jìn)行循環(huán)操作時(shí)其值會(huì)自動(dòng)增加或者減少。5.1.3VBA控制語句3.循環(huán)結(jié)構(gòu)語句For-Next語句執(zhí)行的過程如下:①初值賦給循環(huán)變量。②比較循環(huán)變量與終值的大小,如果循環(huán)變量超過終值則執(zhí)行⑤,否則執(zhí)行③。③執(zhí)行循環(huán)體。④執(zhí)行Next語句,即自動(dòng)將循環(huán)變量值加上步長值,然后再賦值給循環(huán)變量以繼續(xù)執(zhí)行②。⑤執(zhí)行Next后面的語句。5.1.3VBA控制語句(2)While-Wend語句While-Wend語句通常用在指定條件為True時(shí)的一系列重復(fù)性操作,其語法如下:While<邏輯表達(dá)式><循環(huán)體>Wend

3.循環(huán)結(jié)構(gòu)語句5.1.3VBA控制語句While-Wend語句執(zhí)行的過程如下:①判斷邏輯表達(dá)式的值是否為True。②如果為Tue則執(zhí)行循環(huán)體,否則執(zhí)行④。③執(zhí)行Wend語句,然后返回①繼續(xù)執(zhí)行。④跳出循環(huán)體,循環(huán)結(jié)束,執(zhí)行Wend語句后面的語句。需要注意的是:While-Wend語句沒有自動(dòng)修改循環(huán)條件的功能,因此循環(huán)體內(nèi)必須設(shè)置修改循環(huán)條件的語句,否則會(huì)出現(xiàn)“死循環(huán)”。

3.循環(huán)結(jié)構(gòu)語句5.1.3VBA控制語句(3)Do-Loop語句

Do-Loop語句只有在滿足指定條件的時(shí)候才可以執(zhí)行。其語法如下:

Do[While|Until<邏輯表達(dá)式>]<循環(huán)體>Loop[While|Until<邏輯表達(dá)式>]

3.循環(huán)結(jié)構(gòu)語句5.1.3VBA控制語句使用Do-Loop語句時(shí)要注意以下幾個(gè)問題。①Do-Loop語句本身不能自動(dòng)修改循環(huán)條件,因此循環(huán)體內(nèi)必須設(shè)置修改循環(huán)條件的語句。②一般不使用無條件的Do-Loop語句,但是如果要用到這種循環(huán),就需要在循環(huán)體內(nèi)使用ExitDo語句跳出Do-Loop循環(huán),執(zhí)行Loop后面的語句。③使用Do-Loop語句有兩種格式。一種是執(zhí)行DoWhile-Loop,語句。另一種是執(zhí)行DoUntil-Loop語句。

3.循環(huán)結(jié)構(gòu)語句5.1.3VBA控制語句(4)循環(huán)的嵌套循環(huán)的嵌套是指在一個(gè)循環(huán)體內(nèi)完整地包含另一個(gè)循環(huán),其中外層的循環(huán)稱為外循環(huán),被包含的內(nèi)部循環(huán)稱為內(nèi)循環(huán)。前面介紹的3種循環(huán)語句是可以互相嵌套的。使用嵌套語句時(shí)要注意以下幾個(gè)問題:①循環(huán)嵌套程序的執(zhí)行過程是:外循環(huán)每執(zhí)行一次,內(nèi)循環(huán)都要執(zhí)行全部次數(shù)的循環(huán)。②內(nèi)循環(huán)和外循環(huán)不能交叉使用。③內(nèi)外循環(huán)的循環(huán)變量名稱不能相同,否則得不到正確的結(jié)果。3.循環(huán)結(jié)構(gòu)語句5.1.4VBA程序結(jié)構(gòu)1.Sub過程Sub過程也就是子程序過程。當(dāng)幾個(gè)不同的事件過程要執(zhí)行同一段語句時(shí),即可將這段語句單獨(dú)地放在一個(gè)通用的過程中,以供各個(gè)事件過程調(diào)用。Sub過程的語法如下:[Public|Private]|[Static]Sub<過程名>(<形式參數(shù)>)

<語句塊>EndSub在調(diào)用Sub過程時(shí),形式參數(shù)用于定義傳遞給該過程的參數(shù)類型和個(gè)數(shù)。如果有多個(gè)參數(shù),各個(gè)參數(shù)之間則需要用逗號(hào)隔開。形式參數(shù)的語法如下:[ByVal]<變量名>[As<數(shù)據(jù)類型>]5.1.4VBA程序結(jié)構(gòu)(1)使用Call語句調(diào)用:Call語句的功能是將程序執(zhí)行的流程跳轉(zhuǎn)到指定的過程中執(zhí)行該過程。使用Call語句調(diào)用Sub過程的語法如下。Call<過程名>[<實(shí)際參數(shù)>](2)直接使用過程名調(diào)用:調(diào)用Sub過程也可以直接使用過程名,如果過程是一個(gè)有參過程,那么調(diào)用過程語句中的實(shí)際參數(shù)不需要加括號(hào)。1.Sub過程5.1.4VBA程序結(jié)構(gòu)2.Function過程Function過程也就是自定義函數(shù)過程,用來完成某一個(gè)獨(dú)立的功能。與Sub過程相比,F(xiàn)unction過程的不同之處在于Function過程可以給調(diào)用的過程帶回一個(gè)返回值。Function過程的語法如下:[Public|Private]|[static]Function<過程名>[(<形式參數(shù)>)][As<類型>]EndFunction5.1.4VBA程序結(jié)構(gòu)3.參數(shù)的傳遞(1)傳值參數(shù)(2)引用參數(shù)在VBA程序設(shè)計(jì)的過程中一定要注意參數(shù)的選擇,要根據(jù)具體情況選擇傳值參數(shù)或者引用參數(shù)。①形式參數(shù)不用于傳遞過程的結(jié)果時(shí),最好使用傳值參數(shù)。因?yàn)閭髦祬?shù)只是單純地接收數(shù)據(jù),可以避免錯(cuò)誤地改變數(shù)據(jù),不至于對一個(gè)過程的修改而影響其他的過程,使用起來比較安全。②如果需要將過程中對形式參數(shù)的運(yùn)算結(jié)果返回調(diào)用它的過程,那么最好使用引用參數(shù),否則達(dá)不到想要的結(jié)果。5.2VBA在Excel2010上的應(yīng)用學(xué)習(xí)目標(biāo):

熟悉Excel2010的基本概念和操作

掌握VBA編程中宏的具體應(yīng)用

掌握VBA對Excel工作簿的基本操作

掌握VBA對Excel工作表的基本操作

掌握VBA對Excel單元格的基本操作

掌握使用VBA自定義函數(shù)的應(yīng)用

掌握使用VBA對Excel數(shù)據(jù)的處理和分析5.2.1ExcelVBA中的宏1.錄制宏操作步驟(1)選中單元格區(qū)域,然后在菜單欄上依次單擊“開發(fā)工具”選項(xiàng)卡的“代碼”功能組,選擇“錄制宏”命令按鈕。(2)在彈出的“錄制新宏”對話框中,進(jìn)行宏的相關(guān)設(shè)置。在“宏名”文本框中輸入“設(shè)置字體格式”;在“快捷鍵”文本框中設(shè)置運(yùn)行該宏的快捷方式,也可以不設(shè)置;在“保存在”下拉列表中選擇“當(dāng)前工作簿”選項(xiàng),表示只有當(dāng)該工作簿打開時(shí),錄制的宏才可以使用;在“說明”文本框中輸入一些說明性的文字。5.2.1ExcelVBA中的宏1.錄制宏操作步驟(3)單擊“確定”按鈕,即可進(jìn)入宏的錄制。(4)在“開始”選項(xiàng)卡里的“單元格”功能組里,選擇“格式”下拉列表中的“設(shè)置單元格格式”命令。在彈出的“設(shè)置單元格格式”對話框里,對字體格式進(jìn)行設(shè)置。(5)單擊“確定”按鈕,完成選定單元格的字體設(shè)置。(6)在“開發(fā)工具”選項(xiàng)卡的“代碼”功能組,單擊“停止錄制”命令按鈕。停止宏的錄制。2.運(yùn)行宏操作步驟(1)選擇要設(shè)置字體格式的單元格區(qū)域,在“開發(fā)工具”選項(xiàng)卡的“代碼”功能組,選擇“宏”命令按鈕,彈出“宏”對話框。(2)在列表框里,選擇“設(shè)置字體格式”宏,“位置”下拉列表選擇“當(dāng)前工作簿”。單擊“執(zhí)行”命令按鈕,即可看到宏的運(yùn)行效果。(3)如果在“宏”的對話框里,單擊“編輯”命令按鈕,則進(jìn)入與Excel綁定的VisualBasic編輯器,可看到該宏命令的內(nèi)部代碼。5.2.1ExcelVBA中的宏5.2.2對“學(xué)生檔案工作簿”的操作新建空白工作簿操作步驟(1)在Excel中,選擇“開發(fā)工具”選項(xiàng)卡,在“代碼”功能組中單擊“VisualBasic”按鈕。(2)打開VBA代碼窗口,選擇“插入”的“模塊”菜單命令。(3)單擊“運(yùn)行”按鈕,彈出“宏”對話框,對其進(jìn)行設(shè)置。“宏名稱”設(shè)置為“新建空白工作簿”,“加載宏”選擇“VBAProject(工作簿1)”,最后單擊“創(chuàng)建”按鈕。

1.新建工作簿5.2.2對“學(xué)生檔案工作簿”的操作(4)利用工作簿集合的Add方法來添加新工作簿,在VB代碼編輯界面窗口輸入如下代碼。(5)單擊“運(yùn)行”按鈕

,在彈出的“宏”對話窗口,選擇剛創(chuàng)建的VBA程序“新建空白工作簿”,單擊“運(yùn)行”命令按鈕,在左側(cè)工程框里,出現(xiàn)新建的空白工作簿“工作簿2”,單擊保存按鈕,保存工作簿為“學(xué)生檔案工作簿”。1.新建工作簿2.保存工作簿保存指定工作簿“學(xué)生檔案工作簿”操作步驟(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入保存的基本代碼,編譯通過并運(yùn)行后代碼窗口效果如圖。5.2.2對“學(xué)生檔案工作簿”的操作將工作簿“學(xué)生檔案工作簿”進(jìn)行另存操作步驟:(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入另存為的基本代碼,編譯通過并運(yùn)行后代碼窗口效果如圖。(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入打開工作簿的基本代碼,編譯通過并運(yùn)行后代碼窗口效果如圖。左邊工程窗口顯示打開的“學(xué)生檔案工作簿”,右邊代碼窗口為編譯運(yùn)行后的代碼。3.打開工作簿操作步驟5.2.2對“學(xué)生檔案工作簿”的操作(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入關(guān)閉工作簿的基本代碼,編譯通過并運(yùn)行后代碼窗口效果如圖。左邊工程窗口之前打開的“學(xué)生檔案工作簿”已經(jīng)關(guān)閉,右邊代碼窗口為編譯運(yùn)行后的代碼。4.關(guān)閉工作簿操作步驟5.2.2對“學(xué)生檔案工作簿”的操作1.選擇工作表操作步驟(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入關(guān)閉的基本代碼,編譯通過并運(yùn)行后代碼窗口效果如圖。5.2.3

對“學(xué)生檔案工作簿”中表格的操作2.插入工作表操作步驟(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入插入表的基本代碼1。結(jié)果是在當(dāng)前工作表“學(xué)生基本信息”前插入新表“Sheet1”。(3)在代碼窗口,輸入插入表的基本代碼2。結(jié)果是在當(dāng)前工作表“學(xué)生基本信息”前插入新表“學(xué)生成績表”5.2.3

對“學(xué)生檔案工作簿”中表格的操作3.移動(dòng)工作表工作簿內(nèi)部移動(dòng)操作步驟(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入移動(dòng)表的基本代碼1。結(jié)果是將“學(xué)生成

績表”移動(dòng)到“學(xué)生基本信息表”之后。(3)在代碼窗口,輸入移動(dòng)表的基本代碼2,編譯通過并運(yùn)行后結(jié)果是將“學(xué)生成績表”移動(dòng)到“學(xué)生基本信息表之前”。代碼2基本語法為:Sub移動(dòng)到表之前()Sheets("學(xué)生成績表").Movebefore:=Sheets("學(xué)生基本信息表")EndSub5.2.3

對“學(xué)生檔案工作簿”中表格的操作工作簿間移動(dòng)操作步驟(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入工作簿間移動(dòng)表的基本代碼1。結(jié)果是將“學(xué)生成績表”移到“學(xué)生檔案工作簿1”的工作表“sheet2”之前。(3)如果需要將“學(xué)生成績表”移動(dòng)到新的工作簿中。則基本代碼2為:Sub移動(dòng)到新建工作簿()Sheets("學(xué)生成績表").SelectSheets("學(xué)生成績表").MoveEndSub5.2.3

對“學(xué)生檔案工作簿”中表格的操作4.復(fù)制工作表工作簿內(nèi)部復(fù)制操作步驟(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入復(fù)制表的基本代碼。結(jié)果是將“學(xué)生成績表”復(fù)制到“學(xué)生基本信息表之后”。5.2.3

對“學(xué)生檔案工作簿”中表格的操作工作簿間復(fù)制操作步驟(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入工作簿間復(fù)制表的基本代碼。5.2.3

對“學(xué)生檔案工作簿”中表格的操作4.復(fù)制工作表(1)在VBA編輯管理窗口中,插入一個(gè)新模塊。(2)在代碼窗口,輸入刪除工作表的基本代碼為:Sub刪除工作表()Sheets("學(xué)生成績表(2)").SelectActiveWindow.SelectedSheets.DeleteEndSub5.刪除工作表操作步驟5.2.3

對“學(xué)生檔案工作簿”中表格的操作選擇單個(gè)單元格(1)Range表示單個(gè)單元格Range可以代表工作表中的某一個(gè)單元格、某一行、某一列、某一個(gè)選定區(qū)域。表示方法1:Range(“A6”).Select表示方法2:Range(“A”&“6”).Select5.2.4

對“學(xué)生檔案工作簿”中單元格的操作1.單元格的選擇(2)Cells表示單個(gè)單元格表示方法1:Cells(6,1)說明:Cells(行序號(hào),列序號(hào))表示方法2:Cells(6,“A”)說明:Cells(行序號(hào),“列字母序號(hào)”)表示方法3:Cells(1281)說明:Cells(單元格序號(hào))單元格序號(hào)=(行號(hào)-1)*256+列號(hào)5.2.4

對“學(xué)生檔案工作簿”中單元格的操作1.單元格的選擇(3)簡化表示單個(gè)單元格表示方法:[A6].Select例如:選擇指定單元格:當(dāng)要選擇指定工作簿“學(xué)生檔案工作簿”的工作表“學(xué)生基本信息表”的單元格A6時(shí),可在單元格前加具體的工作簿和工作表名稱。表示方法:Workbooks(“學(xué)生檔案工作簿”).Sheets(“學(xué)生基本信息表”).Range(“A6”)5.2.4

對“學(xué)生檔案工作簿”中單元格的操作1.單元格的選擇選擇全部單元格例如:當(dāng)要選擇一個(gè)工作表里的所有單元格時(shí),可有三種表示方法。表示方法1:Cells.Select說明:Cells表示所有單元格表示方法2:Rows.Select說明:Rows表示所有行的集合表示方法3:Columns.Select說明:Columns表示所有列的集合5.2.4

對“學(xué)生檔案工作簿”中單元格的操作1.單元格的選擇選擇單元格區(qū)域(1)選擇連續(xù)單元格區(qū)域例如:選擇工作表的A2到B8區(qū)域的連續(xù)單元格區(qū)域。表示方法1:Range(“A2:B8”).Select表示方法2:Range(“A2”,“B8”).Select表示方法3:Range(Cells(2,1),Cells(8,2)).Select表示方法4:[A2:B8].Select5.2.4

對“學(xué)生檔案工作簿”中單元格的操作1.單元格的選擇例如:選擇工作表的第2到第8行的連續(xù)單元格區(qū)域。表示方法1:Range(“2:8”).Select表示方法2:Rows(“2:8”).Select例如:選擇工作表的第C到第F列的連續(xù)單元格區(qū)域。表示方法:Columns(“C:F”).Select(2)選擇不連續(xù)單元格區(qū)域例如:選擇A2,A4:B4的不連續(xù)區(qū)域。表示方法:Range("B2,A4:B7,C5:C9").Select5.2.4

對“學(xué)生檔案工作簿”中單元格的操作1.單元格的選擇2.對單元格進(jìn)行賦值直接賦值與引用(1)直接賦值例如:在“學(xué)生檔案工作簿”的“學(xué)生成績表”的A1單元格賦值為“學(xué)號(hào)”,B1單元格賦值為“學(xué)號(hào)”,B2單元格賦值為“72”。表示方法:

Range(“A1”).Value=“學(xué)號(hào)”

Range(“B1”).Value=“英語”

Range(“B2”).Value=“72”5.2.4

對“學(xué)生檔案工作簿”中單元格的操作利用公式賦值可以利用單元格的Formula屬性來實(shí)現(xiàn)賦值。例如:要求在“學(xué)生成績表”里,的最后一列G列的G2單元賦值為所有課程的總分,即:G2=B2+C2+D2+E2+F2。表示方法1:Range(“G2”).Formula=“=B2+C2+D2+E2+F2”表示方法2:Range(“G2”).Formula=“=SUM(B2:F2)5.2.4

對“學(xué)生檔案工作簿”中單元格的操作2.對單元格進(jìn)行賦值引用其他工作表中的單元格當(dāng)引用其他工作表中數(shù)據(jù)時(shí),只需在被引用的單元格前加上‘工作表名’!。例如:在“學(xué)生基本信息表”的F2單元,引用“學(xué)生成績表”的B2:F2的總分?jǐn)?shù)。表示方法:Range("F2").Formula="=SUM('學(xué)生成績表'!B2:F2)"

5.2.4

對“學(xué)生檔案工作簿”中單元格的操作2.對單元格進(jìn)行賦值引用其他工作簿中的單元格

當(dāng)引用其他工作簿中數(shù)據(jù)時(shí),只需在被引用的單元格所在工作表名前加上“[工作簿名]”。

例如:在當(dāng)前工作簿“學(xué)生檔案工作簿1”的當(dāng)前工作表的單元格A1,。單元格B2,引用“學(xué)生檔案工作簿”的“學(xué)生成績表”中英語的B2:B21的最小成績。表示方法:Range("A1").Formula="=SUM('[學(xué)生檔案工作簿]學(xué)生成績表'!B2:F2)"Range("B1").Formula="=MIN('[學(xué)生檔案工作簿]學(xué)生成績表'!B2:B21)"5.2.4

對“學(xué)生檔案工作簿”中單元格的操作2.對單元格進(jìn)行賦值常量的輸入和輸出(1)常量的輸入字符輸入:例如:當(dāng)前工作表的單元格A1,輸入“學(xué)號(hào)”數(shù)字輸入:例如:當(dāng)前工作表的單元格A2:A11,輸入“1-10”表示方法:Range("A1").Value="學(xué)號(hào)"說明:字符輸入DimiAsInteger說明:數(shù)字輸入Fori=1To10Cells(i+1,1)=iNexti3.單元格的輸入與輸出5.2.4

對“學(xué)生檔案工作簿”中單元格的操作(2)常量的輸出可以直接引用單元格的值參與計(jì)算或處理。例如:“學(xué)生成績表”中計(jì)算B2英語和體育C2的成績總和,輸出到單元格G2中。表示方法:Range("G2")=Range("B2")+Range("C2")5.2.4

對“學(xué)生檔案工作簿”中單元格的操作3.單元格的輸入與輸出公式的輸入和輸出(1)公式的輸入例如:在當(dāng)前“學(xué)生成績表”的G列的G2:G4,輸入每位同學(xué)的成績總和。表示方法:Range("G2").SelectActiveCell.FormulaR1C1="=SUM(RC[-5]:RC[-1])"Range("G2").SelectSelection.AutoFillDestination:=Range("G2:G4"),Type:=xlFillDefaultRange("G2:G4").Select5.2.4

對“學(xué)生檔案工作簿”中單元格的操作3.單元格的輸入與輸出(2)公式的輸出通過Formula屬性,獲取單元格公式文本通過對話框輸出。例如:使用對話框顯示單元格G2的公式內(nèi)容。表示方法:MsgBox"G2單元格的公式為:"&Range("G2").Formula5.2.4

對“學(xué)生檔案工作簿”中單元格的操作3.單元格的輸入與輸出單元格刪除(1)刪除后右側(cè)單元格左移例如:刪除單元格G2,后右側(cè)單元格左移。表示方法:Range("G2").DeleteShift:=xlToLeft說明:xlToLeft表示單元格左移(2)刪除后下方單元格上移例如:刪除單元格G2,后下方單元格上移。表示方法:Range("G2").DeleteShift:=xlUp說明:xlUp表示單元格上移

4.單元格的刪除與信息清除5.2.4

對“學(xué)生檔案工作簿”中單元格的操作(3)刪除單元格所在行例如:刪除單元格G2所在行。表示方法:Range("G2").EntireRow.Delete說明:EntireRow表示單元格所在行。(4)刪除單元格所在列例如:刪除單元格G2所在列。表示方法:Range("G2").EntireColumn.Delete說明:EntireColumn表示單元格所在列。

5.2.4

對“學(xué)生檔案工作簿”中單元格的操作4.單元格的刪除與信息清除5.2.4

對“學(xué)生檔案工作簿”中單元格的操作單元格信息清除例如:清除單元格G2的操作如下。(1)清除單元格全部表示方法:Range("G2").Clear(2)清除單元格格式表示方法:Range("G2").ClearFormats(3)清除單元格內(nèi)容表示方法:Range("G2").ClearContents4.單元格的刪除與信息清除5.單元格的插入、隱藏及查找5.2.4

對“學(xué)生檔案工作簿”中單元格的操作單元格的插入使用Insert方法可以實(shí)現(xiàn)插入操作。例如:在A1:B2單元格區(qū)域上方插入等量的單元格。表示方法:Range("A1:B2").InsertShift:=xlDown例如:在第2行前插入一個(gè)空行,在第4列前插入一個(gè)空列表示方法:Rows(2).InsertColumns(4).Insert5.2.4

對“學(xué)生檔案工作簿”中單元格的操作單元格的隱藏使用Hidden方法,可以實(shí)現(xiàn)隱藏操作。例如:隱藏1-2行和4-5列。表示方法:Rows("1:2").Hidden=TrueColumns("D:E").Hidden=True例如:取消隱藏的1-2行和4-5列。只需要將值改為False。表示方法:Rows("1:2").Hidden=FalseColumns("D:E").Hidden=False例如:隱藏G2單元格所在的行和列。表示方法:Range("G2").EntireRow.Hidden=TrueRange("G2").EntireColumn.Hidden=True5.單元格的插入、隱藏及查找5.2.4

對“學(xué)生檔案工作簿”中單元格的操作單元格的查找可以使用Find方法和工作表函數(shù)兩種方法進(jìn)行單元格查找。例如:在“學(xué)生基本信息表”的B列中查找,與單元格F2內(nèi)容“丁麗娟”相同的單元格的行數(shù),將行數(shù)在單元格F3中輸出。(1)Find方法表示方法:Range("F3")=Range("B:B").Find(Range("F2")).Row

5.單元格的插入、隱藏及查找5.2.4

對“學(xué)生檔案工作簿”中單元格的操作(2)工作表函數(shù)方法Match函數(shù):Match(查找目標(biāo),查找范圍,查詢方式)表示方法:Range("F3")=Application.Match(Range("F2"),Range("B:B"),0)Vlookup函數(shù):Vlookup(查找目標(biāo),查找范圍,返回值的列數(shù),精確OR模糊查找)表示方法:Range("F3")=Application.VLookup(Range("F2"),Range("B:E"),4,0)該函數(shù)返回了與“丁麗娟”匹配的記錄,在B:E這個(gè)區(qū)域的第四列即第E列對應(yīng)的內(nèi)容為:“鹽城”。5.單元格的插入、隱藏及查找自定義函數(shù)存放位置因?yàn)樵谀K中的函數(shù)可以在任何一個(gè)程序中調(diào)用,所以一般將自定義函數(shù)存放在模塊中。當(dāng)需要自定義函數(shù)時(shí),首先要在工作簿中“開發(fā)工具”選項(xiàng)卡,的“代碼”功能組里選擇“VisualBasic”命令按鈕。在“VisualBasic”編輯器窗口,插入一個(gè)新的模塊。在模塊中進(jìn)行自定義函數(shù)的編寫。5.2.5ExcelVBA自定義函數(shù)的應(yīng)用1.編寫自定義函數(shù)自定義函數(shù)編寫

自定義函數(shù)采用的是Function過程,以Function開始以EndFunction結(jié)束。格式如下:Function函數(shù)名稱(自變量)程序代碼EndFunction例如:在“學(xué)生成績表”里需要統(tǒng)計(jì),學(xué)生5門課的加權(quán)總分。即:總分?jǐn)?shù)=“英語”*0.4+“數(shù)學(xué)”*0.4+“體育”*0.1+“職業(yè)生涯”*0.1“馬克思主義原理”*0.1表示方法:FunctionJQ_SUM(Eng,Math,Phy,Marx)JQ_SUM=Eng*0.4+Math*0.4+Phy*0.1+work*0.1+Marx*0.1EndFunction5.2.5ExcelVBA自定義函數(shù)的應(yīng)用1.編寫自定義函數(shù)2.使用自定義函數(shù)工作表公式中使用在工作表中,選中單元格G2,在公式輸入欄輸入:fx=JQ_SUM(B2,E2,D2,C2,F2)其他VBA代碼調(diào)用例如:將“學(xué)號(hào)”為“140601101”的學(xué)生的加權(quán)總分,顯示在單元格“G2”里,并用彈出對話框顯示。首先,要插入新的模塊,然后進(jìn)行代碼編輯。表示方法:Range("G2").Formula="=JQ_SUM(B2,E2,D2,C2,F2)"MsgBox"加權(quán)后總分為:"&Range("G2")5.2.5ExcelVBA自定義函數(shù)的應(yīng)用1.對數(shù)據(jù)進(jìn)行篩選

例如:2.5.3節(jié)的高級篩選案例,張帥要篩選出1班、2班、3班,英語在75分以上同時(shí)平均分在75分以上的女生,以及英語在70分以上同時(shí)平均分在75分以上的男生。用高級篩選的方式,代碼實(shí)現(xiàn)如下:Sub高級篩選()Range("A1").SelectActiveCell.FormulaR1C1="性別"Range("A2").SelectActiveCell.FormulaR1C1="=""=女"""Range("A3").SelectActiveCell.FormulaR1C1="=""=男"""Range("B1").SelectActiveCell.FormulaR1C1="英語“

Range("B2").SelectActiveCell.FormulaR1C1=">75"Range("B3").SelectActiveCell.FormulaR1C1=">70"5.2.6ExcelVBA實(shí)現(xiàn)“學(xué)生檔案工作簿”的數(shù)據(jù)分析1.對數(shù)據(jù)進(jìn)行篩選

Range("C1").SelectActiveCell.FormulaR1C1="平均分"Range("C2").SelectActiveCell.FormulaR1C1=">75"Range("C3").SelectActiveCell.FormulaR1C1=">75"Range("A5").Select說明:上面部分為高級篩選條件的設(shè)置。Sheets("學(xué)生成績表").Range("A2:M62").說明:選擇篩選工作表“學(xué)生成績表”及其篩選區(qū)域“A2:M62”AdvancedFilterAction:=xlFilterCopy,CriteriaRange:=Range("A1:C3"),說明:篩選條件區(qū)域選擇“A1:C3”CopyToRange:=Range("A5"),說明:將篩選結(jié)果復(fù)制到A5開始的區(qū)域Unique:=False說明:不考慮重復(fù)的記錄EndSub5.2.6ExcelVBA實(shí)現(xiàn)“學(xué)生檔案工作簿”的數(shù)據(jù)分析5.2.6ExcelVBA實(shí)現(xiàn)“學(xué)生檔案工作簿”的數(shù)據(jù)分析2.對數(shù)據(jù)進(jìn)行排序

例如:2.5.4節(jié)的多條件排序案例,張帥要在“學(xué)生成績表”中,按照獲得獎(jiǎng)學(xué)金金額從高到低排序,金額相同時(shí),按照平均分從高到低排序。代碼實(shí)現(xiàn)如下:Sub多條件排序()ActiveWorkbook.Worksheets("學(xué)生成績表").AutoFilter.Sort.SortFields.Clear說明:清空排序集合ActiveWorkbook.Worksheets("學(xué)生成績表").AutoFilter.Sort.SortFields.AddKey:=Range("M3:M62"),說明:選擇排序主鍵M列的“獎(jiǎng)學(xué)金金額”及其有效數(shù)據(jù)區(qū)域"M3:M62"SortOn:=xlSortOnValues,Order:=xlDescending,DataOption:=xlSortNormal說明:依據(jù)主鍵M列采用降序排列ActiveWorkbook.Worksheets("學(xué)生成績表").Aut

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論