版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、excel-VBA最基礎入門手冊作者:日期:25excel VBA最基礎入門手冊1、什么是VBA?為什么要學習VBA2、VBA與宏3、VBE簡介4、對象、屬性、方法、事件5、VBA過程6、數(shù)據(jù)類型、變量、數(shù)組、常量7、(回復)該定義變量為何種數(shù)據(jù)類型8、VBA的函數(shù)9、程序流程控制:if語句10、程序流程控制:Select Case 語句11.程序流程控制: For next 語句12、幾個 fornext 循環(huán)的例子(作者:老朽13、程序流程控制:ForEach語句14、程序流程控制: Do While語句15、程序流程控制: Do Until語句16、程序流程控制: Go to 語句17、
2、用戶窗體18、再說Excel的對象模型19、小試牛刀制作一個個性化的歡迎界面20、處理單元格數(shù)據(jù)(復制、剪切、刪除21、Range對象的End屬性(帶作業(yè))22、花名冊分類(實例)23、花名冊匯總(實例24、新建工作表25、認識數(shù)組(一)26、 Worksheet 的 Change 事件(帶作業(yè))27、關于 Application.EnableEvents 屬性(有實例動!?)Application.EnableEvents補充說明28、關于 Worksheet 的 SelectionChange 事件(有實例動!?)29、 Worksheet 的 SelectionChange 事件實例(t
3、rustwxq 朋友提供)什么是VBA ?為什么要學習VBA?VBA是Visual Basic For Application 的簡稱,具體說來,可能 讓葉楓三天三夜也說不完,葉楓也只知道 VBA是建立在Ofice中的一 種應用程序開發(fā)工具,其實知道這也就夠了。很懶很笨的葉楓只想吃 香噴噴的大米飯,可從沒想要知道大米飯是怎么來的。Excel本身的內(nèi)置函數(shù)其實已經(jīng)很強大了,甚至有人說,只要學會二三十個函數(shù),就已經(jīng)可以滿足普通用戶日常的工作需求。那我們?yōu)槭裁匆獙WVBA?是的,如果只需要滿足一些普通的工作需求可能永遠也不會用到VBA,但在實際應用的過程中,人們的操作卻越來越大,需要也越來 越高,這時
4、候就需要用 VBA來對Excel進行二次開發(fā)了,VBA可以有 效地自定義和擴展 Excel的功能。但有一點葉楓想要告訴大家,VBA功能很強大,但弁不是萬能的,也弁不是所有工作都需要用 VBA來解決,也弁不是所有工作用 VBA 來解決都會很簡單,這要根據(jù)實際情況而定, 有些工作你用VBA來解 決的話相反會變得很麻煩。VBA與宏剛開始的內(nèi)容聽起來很枯燥, 請大家不要分心,耐著性子看下去, 興趣總是慢慢積累的。1、親自動手,錄制一段屬于自己的宏提到VBA,相信很多人想到的就是宏,但是VBA與宏是不是一回事?我覺得它們不是一回事,但這不重要,我們要做的是先來認識 一下宏。宏是什么?我理解的宏是一系列固
5、定動作的集合,這個集合當遇到讓他執(zhí)行 的條件后就逐個執(zhí)行。有人把我們錄制的宏比喻成一個武術運動員在比賽中練就的一段 武術套路動作,這個套路遇到一定的條件(比賽)就執(zhí)行。好了,別閑著,動一動你可愛的右手,點點鼠標,打開一個Excel文件,錄制一段宏來來研究研究,步驟如下:(1)選中任意一個單元格;(2)打開菜單一 工具一 宏一錄制新宏,調出宏錄制對話框, 輸入宏名(mysub),確定;(3)設置單元格字體為仿宋體,紅色;(4)點擊停止錄宏。這樣,一個簡單的設置單元格格式的宏就錄好了2、鼠標點一點,宏給單元格換新裝下面我們來執(zhí)行這段宏。(1)選中需要設置的任意單元格或單元格區(qū)域(為了看出效果, 單
6、元格最好有字符);(2)打開菜單一 工具一 宏一宏,顯示“宏”對話框(快捷鍵: Alt+F8 );(3)選擇我們剛才錄制的宏,單擊“執(zhí)行”。這樣我們看到已經(jīng)為剛才選中的單元格的字體已被修改成仿宋 體,紅色。自己動手試著錄制幾段宏,再執(zhí)行一下,加深印象。神奇了吧?以后當你再需要一遍又一遍地重復若干相同的操作的 時候,會不會想到讓宏來替你做這一切?這是一個不錯的奴隸,不用 花錢,且不用開工資,賺了吧?好了,收起你貪婪的笑容,繼續(xù)往下看。宏是什么?現(xiàn)在相信你能想出一千種說法,由你了,又笨又懶的 葉楓可沒你聰明,也不再多說。上面說的執(zhí)行宏的過程是不是讓你感覺很麻煩?希望用快捷鍵來 控制宏?這個我們可以
7、在錄制宏之前在錄制宏對話框里進行設置。也 可以在錄制宏后進行設置,按Alt+F8顯示宏對話框,單擊“選項”在“宏 選項”對話框里進行設置3、尋根問底,找到宏的老窩如果你忘記了,請你再打開宏錄制對話框,在宏名的下面,有一個“保存在”的選項,點一點下拉的箭頭,我們可以看到,宏可以保存在 三種不同的位置,分別是:(1)當前工作箭(系統(tǒng)默認):宏保存在當前工作薄的模塊里, 只有當該工作薄打開時,宏才起作用。(2)新工作箭:新建一個工作薄保存。(3)個人宏工作箭:這是為宏而設計的一種特殊的具有自動隱藏特性的工作箭,如果你要讓某個宏在多個工作箭都能使用,那么就應 當創(chuàng)建個人宏工作箭,弁將宏保存于其中。上面
8、我們錄制的宏是保存在當前工作薄里,今天我們在這里也只介紹保存在當前工作表里的宏。4、撥開層層迷霧,查看廬山真面目宏靠什么來控制 Excel的運行?是不是感覺深在濃濃的迷霧里,感覺一頭霧水?讓我們鼓一鼓勁,撥開它的衣服,開開那家伙里面到底是什么?(1)按Alt+F8快捷鍵打開“宏”對話框;(2)選擇我們剛才錄制的宏,點“編輯”按鈕。眼前一亮吧?這是一個新的天地一一 VBA的編輯器窗口( VBE),這個我們以后再說,先將注意力集中到顯示的代碼上。代碼如下:復制內(nèi)容到剪貼板 代碼:Sub mysub()'mysub Macro'宏由 ggsmart 錄制,時間:2009-2-27
9、39;With Selection.Font.Name ="仿宋_GB2312”.Size = 12.Strikethrough = False.Superscript = False.Subscript = False.OutlineFont = False.Shadow = False.Underline = xlUnderlineStyleNone.ColorIndex = xlAutomaticEnd WithSelection.Font.ColorIndex = 3End Sub現(xiàn)在你可能感覺到上面這些亂七八糟的代碼會很陌生,甚至在問 自己是不是來到外星人的世界,反正葉楓當
10、初是這樣感覺的,但不要 為此感到害怕,將來我們會慢慢熟悉他,就像閉上眼睛也能準確地將 那個又大又紅的蘋果送到自己的嘴里。 5、再進步,給宏安 上門鈴一遍一遍地在宏對話框里選擇宏名稱,按“執(zhí)行”按鈕來運行宏的麻煩是不是讓你郁悶得有些想吐血?指定快捷鍵雖然方便,但別人用自 己的工作表時能不能快速上手?就算是自己,如果宏多了,或是放的 時間長了,你還記得哪個快捷鍵控制哪個宏?作為excel開發(fā)者,一個主要的目標是為自動化提供一個易于操 作的界面,“按鈕”是最常見的界面組成元素之一,我們可以把宏指定給 特定的按鈕,通過按鈕來執(zhí)行宏,還是用剛才我們錄制的那個宏來舉例。通過使用“窗體”工具欄,可以為工作海
11、中的工作表添加按鈕。在創(chuàng)建完一個按鈕后,可以為它指定宏,然后你的用戶就可以通過單擊按 鈕來執(zhí)行宏。在本練習中,將創(chuàng)建一個按鈕,弁為它指定一個宏,然后用該按鈕來執(zhí)行宏。具體步驟如下:(1)打開菜單一 視圖一 工具欄一 窗體,調出窗體工具欄。1.jpg (7 KB)(2)單擊”窗體”工具欄中的“按鈕”控件,在工作表中希望放置按 鈕的位置按下鼠標左鍵,拖動鼠標畫出一個按鈕,松開鼠標后, Excel 會自動顯示“指定宏”對話框。,2.jpg (31.38 KB)(3)從“指定宏”對話框中選擇Mysub”,單擊“確定”。這樣,就把該 宏指定給命令按鈕。引用:課間休息,插播一段廣告:按鈕,工作表等這些對象
12、就像是Excel的眾多兒女,兒女太多,怎么稱呼這群兒女也是一個問題.為了不出現(xiàn) 叫兒子就七八個一起跑出來,同許多農(nóng)村父母給兒女起老大, 老二,老三u的稱呼一樣,E xcel也用這種順序的起名方法給這 些兒女貼上了標簽.比如第一個按鈕是u按鈕一u ,再畫一個就是u 按鈕二U ,然后是U按鈕三u , u俊鈕四u等等.這樣,以后你要叫 第三個兒子的時候直接叫U按鈕三u即可.如果你嫌這個名字鄉(xiāng)下味 太濃,如果你嫌這個名字不能很好地反映點擊它后會執(zhí)行怎樣的操作 不清楚,你可以通過雙擊按鈕表面激活它,可重新為按鈕貼上合適的 顯示標簽.需要提醒你的是,這里的標簽只是它顯示在你面前的樣子,下名稱框里是什么.實
13、際、是什么名字?我們可以點擊它,W宋體* 12*D E按鈕1班0C畫 3.jpg (16.03 KB)為什么顯示出來的是一樣,而實際的名字卻是另一樣呢?也許你 現(xiàn)在會感到迷茫,但不用管它,以后當我們學習了屬性后,一切就自 然明白了.卜面我們來試一試用按鈕操作:(1)選擇單元格或單元格區(qū)域;(2)單擊按鈕。A-A A A A A A A r-Jtn co n .r .ziTI co vvvvvvvv 習 T>. NW w w 習 p? 學學學學孝學學學 在小鏟右乙匚左左 我我我我敢我哭啜 1011"后4J空忤Ei說薨吧埋用區(qū) 1J格式3 工且匚患宗口,龍,r上u 零至叁出,M沅在
14、學可丁0萬 我在學刁VBa 疣在阜刁VBA 我在學習了 D A 劇在學習VBa 我;在學習VB A 發(fā)在學習Ba 益在字用了后滴1011甥 4.jpg (61.93 KB)按鈕就像裝在樓下的門鈴,美麗的嫦娥仙子家住在來到樓下,找準號碼502,輕輕一按,“叮咚,叮咚502,豬八戒 ,嫦娥在樓上就給八戒開門了,八戒不用在樓下大聲地喊“嫦娥,開門?!币膊挥没▋?毛錢給嫦娥打個電話,當然更不用順著下水管從墻上爬進嫦娥的窗戶, 方便而實在吧?這種遙控式的命令的確能讓繁瑣的操作變得簡單而方便,讓我們 獲得了一些使用Excel標準命令所不能實現(xiàn)的功能。如果你是八戒, 當你熟悉了如何使用這種遙控一樣的門鈴以后
15、,你可能都會奇怪自己 當初在沒有門鈴的情況下,那段漫長的爬下水管道的日子是怎么熬過 來的。讓嫦娥仙子開門的方法有很多種,同樣執(zhí)行宏也有多種方法可以 選擇,我們還可以把宏指定給圖片,自選圖形,這些比較簡單,和指 定給窗體按鈕是一樣的,同時我們還可以把宏指定給某個“事件”,比如 單擊工作表,雙擊工作表,激活工作表,打開工作箭等等,你要安什 么要的門鈴,選什么樣的音樂,隨你了。需要強調一點的是,我們剛說的“事件”是一個重要的概念,八戒按 門鈴,就是一個“事件”這個“事件”引發(fā)了嫦娥的開門,只有門鈴響了, 嫦娥才會去開門。除此而外“方法” “對象” “屬性”都是接下來我們會經(jīng)常 接觸到的,慢慢走,留心
16、點,一路上將會精彩不斷。6、小結到這里,我們對宏應該有一個簡單的了解了吧?宏實際上就是一個簡單的VBA的Sub過程,它保存在模塊里,以Sub開頭,以End Sub 結尾,執(zhí)行時就從第一句逐句執(zhí)行,直到 End Sub結束。就像前面我 們說的武術運動員練的那段套路動作,總是抱拳,扎馬,出拳然后踢腿,永遠不可能沒有扎馬就出拳,沒有出拳就踢腿。我們今天錄的這 段宏也總是先設字體,再改字體顏色,這種順序永遠不會亂。說完這些,你是不是感覺這些操作古板得沒有生氣?是不是感覺這宏的操作不能滿足自己的需求?葉楓想告訴你的是,宏代碼絕不等于VBA,它只是VBA里最簡單的運用,盡管許多 Excel過程都可以用錄制
17、宏來完成,但是通過宏 代碼還是無法完成許多的工作,如:(1)不可以建立公式,函數(shù);(2)沒有判斷或循環(huán)的功能;(3)不能進行人機交互;(4)無法顯示用戶窗體;(5)無法與其他軟件或文件進行互動。.所以,你看了上面的內(nèi)容后千萬不要以為宏就是 VBA 了, 更不要以為自己已經(jīng)會 VBA 了,事實上是你才剛沾上 VBA的邊,或 者說連邊都沒沾上,甚至連宏今天我們都只是作了簡單的介紹。路漫漫其修遠兮,還等著我們上下去求索,路在腳下,武林高手 總是從練習簡單的套路動作開始,不要厭倦扎馬的單調,靜下心多練 練,這會是你以后練習武功招式的一個基礎,孔子老人家說了,要溫 故而知新,記得復習鞏固,不要學了后面忘
18、了前面,到下次葉楓再見 到你的時候你什么都忘記了,好了,今天就到這里,讓我們一起加油VBE 簡介=什么是VBE ?相信你還沒忘記吧? VBE就是VBA的編輯窗口,所有的 VBA操 作都在VBE里完成。VBE是一個分離出來的應用程序,它可以與 Excel無縫結合,但 是需要說明的是要運行 VBE必須先運行Excel , VBA模塊與Excel工 作薄文件一起存儲,除非激活 VBE,否則VBA模塊是看不見的。1、運行Excel后,怎樣切換換到 VBE窗口?打開大門的鑰匙有很多把,千萬別猴急地去爬下水管道。(1)按ALT+F11快捷鍵;(2)選擇“工具”廿“宏”一 Visual Basic編輯器”命
19、令。3 A第變量事解應)公式南糖> ;F G 1 K I 工 I I I定如> I >宏卿JQt+?S自定義©J錄簫幽£®選項R)安全性0),_,«.力 甘iwJ Fuig 編播鬻5Ali>nW國 1.jpg (29.14 KB)33 i 1'里,_35 ;36 I_37J8 :39也41_42_1 .- win 5hee 4 .(3)右擊工作表名稱標簽,點擊查看代碼。插入口刪除重命名國)移動或復制工作表通).選定唱部工作衰)工作賽標簽藪色始;1查看襁君rr?iTE i工乂 DiidH2.jpg (17.69 KB)(4)
20、單擊控件工具箱里的“查看代碼”卻 文件 編輯國)視圖4)茹人工)格式 工具。 數(shù)據(jù) sum :占 $33-d lX &,©品力一0T 程 £TI=此柔皂"國®囿fcBU童±A圖的B;宋體查若代螞|- 12 * H F JJ冬春季迪|等,聯(lián)與工11§, 醫(yī)F1sle 口 1H F 一 ,«1I |:",1 .23匣3.jpg (28.24 KB)如果你的窗口里找不到控件工具箱,請通過“視圖”一 > “工具欄”-> “控件工具箱”打開它/ 4.jpg (35.59 KB)(5)通過控件工具箱建立一個
21、新的控件,雙擊控件。i23 g56.rJ 9 10 iT n 13 14雪 U-U.JA叱學序B5爛;oc*-4 日 CciaroandBut t onl3*一到 5.jpg (36.24 KB)這個界面相信你不陌生吧?查看宏的時候我們已經(jīng)見識過它了口6.jpg (85.09 KB)2、初識VBE窗口“工程資源管理器”顯示一個樹型圖示,包含了當前在 Excel中打開的所有Excel對象,包含工作表,模塊,窗體,加載宏及隱藏的工 作薄,每個工作薄被認為是一個工程。在工程資源管理器里右擊,可以在右鍵菜單里選擇相應的命令 插入模塊或窗體。如果你想刪除它或者保存它,同樣也可以在這里進 行相應的操作。g
22、CSKeetS)ThisWorkbock-巴模塊口查看代同演,34.Si.Supericri pt .SlibEcript - F .OutlineFont .Shadow = F虹白 .Underline = x .CalftrlrLJt =End Ti th自1 0 匕七 idik font. Col or In End屬性-幡覆塊1,接字母VBkFrojsct 國性®插入03導入文件®導出文件移除植物®一打EDp可連接的博) 隱藏四;留用尸得體)喀根塊卬國 IITT-7.jpg (30.89 KB)“屬性窗口”顯示當前你選擇的Excel對象的屬性。選中某個對
23、象后, 可以在屬性窗口中修改選中的對象的的各樣屬性.如顏色,名稱等。圖(heetl) 固Sh6人姓?) 固3卜金仃3岱加打3) 超ThiJ 口rkbook-百窗悻困 UserForml一;石海琪段欖曲I國性-UsfliFarmlUserForal UxerFoni 按字理庠授會專|2Ji ZJ名稱)Bfickf olorBcrderColorBorderStrl eC«pti onCycleIirawE-uff&rEmahleAFgtForeC qIotMeichtK«lpConta»tlEO ftHSOOOOOO ftHSOOOOD1 ; 。- finS
24、crdei UstrForml - finCyclti宋體 ftHSOOOOOtISO35000TrueEeepS er oil B sr 3 - fmScroli dft1n-J8.jpg (37.77 KB)“立即窗口”,這是一個非常有用的窗口,在其中可以直接執(zhí)行VBA語句,測試語句和調試代碼,就跟我們在DOS下輸入DOS命令一樣如果你的立即窗口不可見,按CRTL+G調出來,可以在里面嘗試輸入:a1二"我在學習VBA”回車,看一看A1單元格里發(fā)生了什么變化?塔YBHrojw"崢教求助r Microsoft Ewcel 鬼墓 (Sheetl)理置理e-kk占haat201
25、2 iShe 電 t3 (SLeetS) liti Hnrkh a 口k 白窗體Fai UserForml r模塊士即畜口【虱下"我在學Rmc輸入完成,回車Sh*t2工程-¥BAPreject建用)雙擊它國 9.jpg (36.51 KB)“代碼窗口”是干嘛用的?相信你已經(jīng)很清楚了,當然是用來編輯VBA代碼的地方,工程中的每一項都有一個與之相關聯(lián)的代碼窗口,如果要查看某對象的代碼窗口,或者說如果要查看某對象上面究竟編寫了什么VBA代碼,在“工程資源管理器”窗口中雙擊對象即可。日!i int I® &Jtft. xls.) 7"Si filicro
26、ECuft Excel 弱募O Sheetl潴八戒背班婦:- "Steet2Ei&etZj-SheetS (Sheet3)Thi Workbook-巧窗體怎 ITierrormi為稿忱潞模塊1網(wǎng) 10.jpg (30.07 KB)當然,你打開后的窗口不一定和上面一樣,VBE的窗口也不只上面幾個,我們可以打開“視圖”菜單,在里面進行選擇需要顯示的窗口。:ct i gft Ek cc i«U削 rti2 CSh« »t3 Gh* mW oi kbocrrf «r«l史1Microsoft Excel輯 視圖瓦廠I插入 格式。)調試
27、 運行® TJ 代碣窗前FT_L * 皆 一比工I 13,我t |州荊象窗口 6)£心£計F7守對象融覽器©)竺立即葡口 Q)Ctrl+Gn本地窗口)否men on一一感工程贊源管理需此)Ctrl+1甘屬性窗口也)!4kitlFll對象、屬性、方法,事件這是很重要的幾個概念,是寫 VBA程序的基礎,大家仔細讀,一 定要弄清楚。1、對象及對象層次結構對象就是存在的東西,是 VBA處理的內(nèi)容,包括工作薄、工作 表、工作表上的單元格區(qū)域、圖表等等。對象可以相互包含,就像一 個文件夾里可以包含多個文件夾一樣,而這個文件夾又可以被其他的 文件夾包含,一個工作薄對象
28、可以包含多個多個工作表對象,一個工 作表對象又可以包含多個單元格 (或圖表,圖形等),這種對象的排列模 式稱為Excel的對象模型。21-21集合這個概念經(jīng)常遇到,我理解的集合是對相同類型的對象的統(tǒng)稱。某中學有5000個學生,名字各不相同,我們對他都統(tǒng)稱為某中學的學生,而不和一一去叫他們的名字,"某中學的學生"在這里是集合。對象的引用,在 Excel里,Workbooks 集合包含在 Application對象里,當我們要引用某工作薄的時候,要遵循從大到小的規(guī)則。跟表示硬盤里的某個文件的位置一樣,比如我們想引用D盤“我的文檔”文件夾下的名為“我的VBA課程.doc”文件時要
29、輸入的是:D:我的文檔我的VBA課程.doc同樣,如果我們要引用名稱為“ mybook.xls ”的工作薄時就是:Application.Workbooks( mybook.xls ')和引用文件不同的是,VBA里使用的分隔符是點。同理,當我們引用“mybook.xls ”里面的工作表mysheet ”時應是:Application.Workbooks( mybook.xls ").Worksheets( mysheet”)可以繼續(xù)延伸到下一層,引用mybook.xls ”里工作表mysheet ”里面 的單元格區(qū)域“A1:D10 ":Application.Wor
30、kbooks( mybook.xls )Worksheets( mysheet").Range( A1:D10')但是弁不是每一次引用都必須這么呆板,就像豬八戒不用每一次都去爬下水管道。如果我們引用的是活動對象,也就是被激活的對象,引用就可以進行簡化。如果是mybook工作薄是激活的,引用可以簡化為Worksheets( mysheet ").Range( A1:D10")如果 mysheet當前也是激活的,引用甚至還可以簡化為 Range( A1:D10 ”),也可以直接輸入A1:D10,如果引用的單元Range是單個的單元格,還可以用Cells (行號
31、,列號)的引用方式。2、屬性每一個對象都有屬性,一個屬性就是對一個對象的一個設置。豬八戒背著媳婦高秀蘭同自己的紫云洞,豬八戒的媳婦就是對象,“高秀蘭”就是豬八戒的媳婦的一個屬性(name屬性),引用對象的屬 性同樣也要用點來分隔。豬八戒的媳婦.name =高秀蘭別閑著,還是動動你的右手,打開一個工作表,Alt+F11 (千萬別說你不知道這個快捷鍵是干什么,要不我保證被你氣個半死),如果立 即窗口沒有打開,按 Ctrl+G打開,在里面輸入: 復制內(nèi)容到剪貼板 代碼:Msgbox Worksheets(1).name回車。國屋 1.jpg (53.4 KB)Worksheets(l)和 Works
32、heets( Sheetl ')有什么區(qū)另fj?Worksheets(l)表示W(wǎng)orksheets集合里的第一個工作表。Worksheets( Sheetl ")表示 Worksheets 集合里名為"sheetl”的工 作表。至于Msgbox是什么,那就自己問 Help 了,在立即窗口里用鼠標 左鍵把Msgbox抹黑,按F1,就彈出Help里對它的說明了。抹黑代碼,再按F1即可看到相應的幫助。葉楓說:“這個辦法很適 用,一般人我不告訴他。”45立即窗口抹港傳胄orkwh電鼻t工(U,鼻配小按Flil號膏與弓Eoy函數(shù)語參閱示例在對話根卬顯示消息,等待用戶單擊按困,
33、并返回一個 1口告訴用尸單擊哪一個按鈕.語法 oh Gjtcwjv Hj. 5." pjDw L t£ iJ eJ L P, U0J1 tCLT t j m磔門函翱的語法且有以下幾個命名參教;據(jù)建郃分Jyv4yr ,必需的口字符串表古式J作;1尋w在市話 框中的消晟聚r荷;的最大長度大約為 1024個字符,的所用字符的寬度決定. 如果prompt的內(nèi)容超過一行j則可以 在每一行之間用回車符CChr (13) 控匡 2.jpg (42.52 KB)一個對象有哪些屬性我們可以在屬性窗口里查看,要修改一個對 象的某種屬性,如名稱、顯示狀態(tài)、顏色等等,也可以在屬性窗口里 進行修改,
34、當然我們還可以利用代碼進行修改。改當前工作薄里的第 三個工作表的名稱為“這個名字是我用 VBA改的",想想怎么寫代碼?把你的代碼輸在立即窗口里,回車,看看效果,你做到了嗎?3、方法每一個對象都有方法,方法就是在對象上執(zhí)行的某個動作。和屬性相比,屬性表示的是對象某種狀態(tài)或樣子,是靜態(tài)的,就像 是語文里的名詞、形容詞和副詞,而方法則是做某件事的一個動作, 就像動詞,對象和方法同樣用點來分隔。例如Range對象有有一個方法是 Select ,他的作用是選中指定的Range (單元格區(qū)域)對象,在立即窗口里輸入代碼:回車,可以看到 D1:F10已經(jīng)被選中了。p J-IJ-匕 * M Ur p
35、HoftEkV*第司部hUAAAJSk”墟(ShM.tS g 部“*m 謂由5 9 -X?不'H遍HQH :町工 e ijJ、箍人靠熊,白車r螞 3.jpg (36.23 KB)4、事件在上一面豬八戒按門鈴那里,我們已經(jīng)接觸過什么是事件了。簡單點說,事件就是由用戶或者系統(tǒng)觸發(fā)的,可以在代碼中響應 的一段代碼。比如,當我們移動鼠標,打開工作薄,激活工作表,選 中單元格,改變單元格的數(shù)值,點擊按鈕或窗體,敲擊鍵盤等等這些 都會產(chǎn)生一系列的事件,通過編寫代碼響應這些事件,當發(fā)生此類事 件時,程序代碼就會進行相應的操作。這樣解釋你會不會有些暈?感覺又一次進入了外星人的世界?還是舉例說明,我們需
36、要當激活某工作表的時候,自動彈出一個對話框,告訴我們激活的工作表的名稱。(1)打開一個工作表,Alt+F11打開VBE窗口,在“工程對象管理器”窗口里雙擊你要進行設置的工作表,使其代碼窗口顯 示。(2)左面選擇對象 Worksheet(工作表對象),右面選擇 Activate 事件,我們可以看到在代碼窗口里系統(tǒng)已經(jīng)為我們自動輸入了一段代 碼。復制內(nèi)容到剪貼板代碼:Private Sub Worksheet_Activate()End Sub 引用: 提醒:初學的我們,不必完全記住對象及事件的名稱,也不必手工輸 入,系統(tǒng)早為你準備好了,你可以在代碼窗口里進行選擇,左邊是對 象,右面是事件,如果你
37、想知道某個對象(例如工作薄、工作表、窗 體等)有哪些事件,只需要雙擊這個對象,然后在代友窗口里查看即 可。我們需要做的只是:當自己需要它的時候,知道打開哪個箱子把它拿 出來即可.口 4.jpg (47.51 KB)廢話說完,再回到問題里:要達到問題的目的,我們只需要在已給我們列出的兩段代碼中間 加入需要進行操作的代碼就可以了,這里我們需要的是一個對話框來 提醒,對了,還記得 Msgbox吧?輸入代碼:復制內(nèi)容到剪貼板代碼:MsgBox "你現(xiàn)在激活的工作表名稱是:"& ActiveSheet.Name上面的代碼相信你應該能看懂吧?&和我們工作表里的函數(shù)是一樣
38、的,連接文本的作用,A 是當前活動工作表的名字(用了一個 name屬性)回到工作表,激活你剛才設置代碼的工作表,如果你剛才設置的 工作表是激活狀態(tài),請選擇其他工作表,然后再重新激活它,看看你 看到了什么?看一下上面的代碼,對象和事件之間用什么來分隔?還是不是點?千萬別懶,一定要動手,換其他的事件或其他的對象試一試,試 著用代碼改一下其他對象的屬性,在單元格里添加點什么東西,這些 隨你了,你可千萬別說你不知道哪些事件是干嘛用的。別忘記,抹黑代碼,按 F1,再重復一遍,這是一件好武器,一般 人我不告訴他.VBA過程一個過程就是執(zhí)行某些動作的代碼組合。VBA過程分Sub
39、過程和Function過程。1、Sub過程總是以sub過程名()”開頭,以End Sub”結尾,一個過程就是執(zhí)行某項動作的一套指令,Sub過程不返回運行的結果。2、Function 總是以 Function 程序名()”開頭以 End Function ” 結尾,和Sub過程的區(qū)別是Function過程返回程序運行的值, 值可以 是一個值或一個數(shù)組,就像我們的工作表函數(shù), Function過程也就是 我們說的自定義函數(shù)。在這里,葉楓主要要給大家講的是Sub過程,F(xiàn)unction過程如果需要的話,在后面我們再講。好了,今天已經(jīng)講得夠多了, 你對VBA應該已有一個簡單的認 識了吧?要設計一個過程,
40、其實很簡單,把需要的對象收集起來,看看我 們要對他們的屬性進行怎樣的修改?我們需要做什么?需要用什么樣 的方法?要用哪些事件?收集起來就是一個完整的過程。只要你肯動手,一定會覺得很簡單,你不要被那一大堆的對象、 屬性、方法和事件給嚇暈了,完全不必全部記住它們,需要的時候知 道在哪里找就行,而代碼也不必一個一個的去輸入,還記得前面一貼 我們說的錄制宏嗎?當你需要進行某項操作的時候,不妨先錄一段宏,但是宏是呆板的,有許多我們不需要的東西,給它修修枝,剪剪葉, 整理整理,一個程序就 OK 了。同時,建議你在VBE窗口中,單擊“工具一一選項”,在彈出的“選 項”對話框里勾選“自動列出成員”。圓 1.j
41、pg (32.45 KB)設置好后,試著在代碼窗口里輸入點代碼,看看,有什么?呵呵不用我說了,對于初學的我們,很需要它吧?|隨用)Su"b a 0applt call on. wor|End Sub造i w:13tl.語1於口孔wm啕 IffinioysrQrFens國1 IfindoiffState闋1-wr-Q品工豳1tJuncH oilr?l口 2.jpg (15.69 KB)了解了對象,屬性,方法及事件后,豬八戒按門鈴開門的過程我們 都可以把它寫成程序:Sub門鈴一單擊()如果嫦娥.位置=在家那么門.開End sub上面這個弁不是真的程序,但都有了程序的思想了,程序里,事件、
42、對象、屬性及過程都有了,你能找出來嗎?多嘗試,溫故知新,你可以想著用程序去解決一些你在使用Excel過程中遇到的問題,每一個問題的解決,你都會發(fā)現(xiàn)自己得到了很大的 進步.好了,還是那句話,路在腳下,繼續(xù)走,精彩會慢慢為你上演, 讓我們一起努力,共同進步。在上面,我們簡單介紹了 VBA的開發(fā)環(huán)境、幾個常用的窗口,弁 對對象、對象的屬性、對象的方法、對象的事件等概念作了簡單的介 紹,貼子大家認真看了嗎?有沒有一點點的收獲?學習成績?nèi)绾??什么是對象?什么是集合?什么是屬性?什么是方法?什么是事件?如何正確地表示它們?這些,你都能回答了嗎?先沉思三秒鐘,如果你不能回答,那請趕快回過頭去,再看一遍, 我
43、們說VBA是采用面向對象的程序設計方式,這些都是很重要的概 念,如果不弄清楚,實際應用時,你可能會感到手忙腳亂。如果已經(jīng)掌握了,那讓我們一起繼續(xù)本貼的內(nèi)容。這次,我們將繼續(xù)單調的基本功練習, 講一些VBA里面的關鍵字, 為程序設計打下基礎,還是那句話,希望你不要嫌內(nèi)容的單調,一口 你永遠也吞不下一個大胖子,學習是一個循序漸進的過程。數(shù)據(jù)類型、變量、常量、數(shù)組VBA的主要目的是什么?不用說了你也知道,當然是處理數(shù)據(jù)。某些數(shù)據(jù)存在于對象中,如工作表的單元格區(qū)域里,某些數(shù)據(jù)存 在于我們自定義的變量中。1、數(shù)據(jù)類型如以整數(shù)、字數(shù)據(jù)類型告訴計算機如何將數(shù)據(jù)存儲在內(nèi)存中, 符串、日期等。數(shù)據(jù)類型是變量的特
44、性,數(shù)據(jù)類型包括:數(shù)據(jù)類型存儲空問大小范圍Byte1個字節(jié)0 到 255Boolean2個字節(jié)True 或 FalseInteger2個字節(jié)-32,768 到 32,767Long(長整型)4個字節(jié)-2,147,483,648 至U 2,147,483,647Single (單精度浮點型)4個字節(jié)負數(shù)時從-3.402823E38 到-1.401298E-45 ;正數(shù)時從 1.401298E-45 到 3.402823E38Double (雙精度浮點型)8個字節(jié)負數(shù)時從-1.79769313486232E308 到-4.94065645841247E-324; 正 數(shù) 時 從4.94065645
45、841247E-324到1.79769313486232E308Currency8個字節(jié)從-922,337,203,685,477.5808到922,337,203,685,477.5807(變比整型)Decimal14個字節(jié)沒有小數(shù)點時為+/-79,228,162,514,264,337,593,543,950,335,而小數(shù)點 右邊 有28 位數(shù) 時 為+/-7.9228162514264337593543950335;最小的非零值為 +/-0.0000000000000000000000000001Date8個字節(jié)100 年1月1日至I 9999 年12月31日Object4個字節(jié)任彳s
46、j Object弓|用String10字節(jié)加字符節(jié)長度0到大約20億(變長)String( aE 長)字符節(jié)長度1到大約65,400Variant(數(shù)字)16個字節(jié)任何數(shù)字值,最大可達 Double的范圍Variant(字符)22個字節(jié)加字符串長度與發(fā)長String后相同的范圍用戶自定義所有元素所每個元素的范圍與它本身的數(shù)據(jù)類型的范圍相同。(利用Type)需數(shù)目2、變量變量是用于保存在程序運行過程中需要臨時保存的值或對象。就相當于我們在操作工作表的時候插入的輔助單元格、輔助列或輔助 表一樣。同工作表的單元格一樣, 變量可以接納很多種的數(shù)據(jù)類型,如其名,程序運行后,變量的值是可以改變的。如何定義
47、變量?定義變量可以使用Dim語句:Dim變量名As數(shù)據(jù)類型變量名有一定的命名規(guī)則, 這里我就不詳細說明了, 需要提醒 的是在程序的設計過程中,你可能會定義很多的變量,為了閱讀及修 改程序的方便,你定義的變量名盡量能讓人一看就明白這個變量具體 代表的是什么。在 Dim語句中,我們可以不必聲明變量的數(shù)據(jù)類型, 直接輸入Dim變量名”此時定義的變量將被指定為 Variant類型。但我們在程序設計的過程中, 一般應該明確數(shù)據(jù)的類型, 這是一個好的編程習慣,因為指定數(shù)據(jù)類型后會提高程序的運行速度。我們可以在模塊中輸入“ Option Explict ”作為第一句語句來強 制聲明所有變量。也可以點“工具一
48、一選項”,在選項對話框里勾選“要求 聲明變量”。這樣,VBA在遇到?jīng)]有聲明的變量名稱, 該語句將導致程 序停止。定義變量除了可以使用 Dim語句外,比較常的還有:static語 句,Private語句,Public語句。使用不同的語句定義的變量不同的是 它們的作用作用域不同,具體為:(1)如果在一個過程中包含了一個 Dim或Static語句,此時 聲明的變量作用域為此過程,即本地變量。(2)如果在一個模塊的第一個過程之前包含了Dim或Prvate語句,此時聲明的變量作用域為此模塊里所有的過程,也就是在此模 塊里所有的過程都可以使用它,即模塊作用域下的變量;(3)如果在一個模塊的第一個過程之前包
49、含了Public語名,此時聲明的變量作用域為所有模塊,即公有變量。變量的作用域是指變量保留其值的這段時間,也稱為變量的生成周期,它決定變量可以用于哪個模塊或過程中。給變量賦值用等號(=)是 vba里的賦值運算符。比如我們把"我在學習VBA變量!"這個字符串賦給變量 A,則直接輸入:A="我在學習VBA變量!"對了,你可以在立即窗口里試一下逐條輸入:A="我在學習VBA變量!"Mgbox A看一下效果。注意,在VBA里文本是要用英語引號引起來的,還有日期要用#號,比如將日期2009-3-10賦給變量A,則為:A=#2009-3-10#3
50、、常量執(zhí)行過程時,變量的值會發(fā)生改變,所以我們稱它為“變量 但有時候我們需要引用不會發(fā)生變化的數(shù)據(jù),這就是常量。常量聲明 后,不以對它進行再賦值。聲明常量設定常量的值,需要用 Const語句:Const常量名As數(shù)據(jù)類型=常量的值4、數(shù)組除了變量和常量以外,數(shù)組也是我們常用到的。什么是數(shù)組?數(shù)組是具有相同數(shù)據(jù)類型弁且共享一個名字的一組變量的集合。數(shù) 組也是變量。數(shù)組中的元素通過索引數(shù)字加以區(qū)分。如何聲明數(shù)組?可以用Dim語句或者Public語句聲明數(shù)組。Dim/Public 數(shù)組名(a to b) as 數(shù)據(jù)類型a和b是數(shù)組中元素的個數(shù),數(shù)組元素素最小值為a,最大 值為b,元素個數(shù)為(b-a+
51、1)個,當然,你也可以直接輸入個數(shù),此時 默認最小索引號為0。如:Dim myarr(5) As Integer這個數(shù)組的最小元素索引號為0,元素個數(shù)為6。上面定義的只是一維數(shù)組,你還可以定義二維、三維、四維如:Dim myarr(1 to 5,1 to 10) As Integer這就是一個二維數(shù)組,元素個數(shù)為 5*10 =50個。在程序設計的過程中,定義數(shù)組的時候我們可能不能確定數(shù)組 的元素個數(shù),對數(shù)組進行聲明后,可以在運行時用ReDim語句重新指 定數(shù)組的大小。今天的這一部分內(nèi)容實在很枯燥,連葉楓都有點耐不住了,拉拉 雜雜說了這么多,也不知道你看出點門道沒?同前一貼講的內(nèi)容一樣, 這些基
52、礎都是非常重要的, 多讀幾遍,扎好馬才能修練更高深的武功,千萬別嫌這個過程的漫長一個讓你心儀的女孩子, 想牽上她的小手,徜徉在公園里的林 蔭小道上,先前的送花、打電話等等那一串串巴結的行動你會不會嫌 太漫長?VBA不像函數(shù)那樣直面我們,它躲在Excel的背后,像一個“養(yǎng) 在深閨未得見”的美麗姑娘,她飄在墻角的那縷模糊卻美麗的身影對我 們充滿了誘惑,現(xiàn)在我們正在想法設法尋找她的聯(lián)系電話,要想成功 俘虜她,這一步能少嗎?看的沒有動的快,動手操作才是學習的正確方法。發(fā)現(xiàn)問題, 解決問題,這豈不是一個快樂的過程。有人問:如何知道該定義變量為何種類型?這就要根據(jù)你的實際需要,再結合各種數(shù)據(jù)的的范圍來看。
53、在編寫程序的過程中,選擇需要存儲空間盡量小的數(shù)據(jù)類型來保存所需要的數(shù)據(jù),這是很有必要的,雖然我們可以把變量設為 Variant 型,但上面我說了,定義變量類型會提升程序的運行速度, 這也是VBA 提供各種數(shù)據(jù)類型存儲空間的原因。該定義變量為哪一種類型?看一看它的長度。用生活中的一個實例來說這個問題:有一天你上街去買一斤菜油,我們需要選擇一個容器來裝我們所要 買的菜油(相當于聲明變量的類型),如果我們沒有選擇選擇容器,上 帝可不知道你要買多少斤菜油,他就扔給你一個超級大的水缸,這個 水缸無論你要買多少菜油都是可以裝得下的??墒菙y帶這樣一個水缸皿39上街你會不會覺得太不方便了 ?用一個水缸來裝一斤
54、菜油會不會太浪費了 ?所以我們得自己選擇一個瓶子去裝我們的油,一斤油,用一個瓶子剛好合適,當然,如果你只用一個茶杯去裝,那也是不行的。用數(shù)據(jù)來打比方,我們需要用變量來保存一個學生某學科考試成績的分數(shù),那么用 Byte數(shù)據(jù)類型就可以了(它的范圍是0 255),如果在這里使用Integer、Long、Single這些數(shù)據(jù)類型的話,就相當于 我們用水桶,水缸去裝那一斤菜油,只是對計算機存儲空間的浪費, 當然,如果你的值的范圍超過了Byte的范圍,那定義成 Byte也是不行的。定義變量的類型時,除了考慮長度外,還要考慮變量的值的類型。買油的時候不管是用瓶子還是用水缸,反正都能裝回來,但是如果你用麻袋能
55、不能裝那一斤油回來?還是那句話,如 果你沒有 定義變量 類型或定 義變量類型為 Variant ,聰明的計算機會先看你打的油是固體還是液體,是液體的話 把麻袋扔在一邊,給你弄口大缸子。但是如果你自己選擇麻袋上街去 買油,你還能不能把你的油帶回來?用數(shù)據(jù)來打比方,如果你定義了一個變量為Integer型,那你再用把學生姓名的字符串賦給它,行嗎?復制內(nèi)容到剪貼板代碼:Sub mysub()Dim a As Integera ="我在學習VBA變量”皿40MsgBox aEnd Sub將這個過程提制到模塊里,按F5運行它,看看是什么結果?嘗試修改一下定義的數(shù)據(jù)類型,看看修改后的運行結果!VBA函數(shù)用Excel的時間相信你也不短了,什么是函數(shù)就不再細說了。與其他編程語言一樣,VBA含有各種內(nèi)置的函數(shù)。很多的 VBA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- .7市場部培訓紫琪爾項目
- 2025年全球及中國無人機測量軟件行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國珍珠奶茶配料行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國電信行業(yè)CRM軟件行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國便攜式四合一氣體檢測儀行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國塑料輔助設備行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球機器人滾珠絲杠行業(yè)調研及趨勢分析報告
- 2025年全球及中國一次性發(fā)熱暖袋行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025年全球及中國金屬箔電流傳感貼片電阻行業(yè)頭部企業(yè)市場占有率及排名調研報告
- 2025-2030全球貓咪吹風機行業(yè)調研及趨勢分析報告
- 2024-2025學年廣東省深圳市南山區(qū)監(jiān)測數(shù)學三年級第一學期期末學業(yè)水平測試試題含解析
- 廣東2024年廣東金融學院招聘專職輔導員9人筆試歷年典型考點(頻考版試卷)附帶答案詳解
- DB31∕731-2020 船舶修正總噸單位產(chǎn)品能源消耗限額
- 2024年衛(wèi)生專業(yè)技術資格考試衛(wèi)生檢驗技術(初級(師)211)相關專業(yè)知識試題及答案指導
- 《手衛(wèi)生知識培訓》培訓課件
- 江蘇省南京鼓樓區(qū)2024年中考聯(lián)考英語試題含答案
- 兒科護理學試題及答案解析-神經(jīng)系統(tǒng)疾病患兒的護理(二)
- 15篇文章包含英語四級所有詞匯
- 王陽明心學完整版本
- (汽車制造論文)機器人在汽車制造中應用
- 幼兒園手工教學中教師指導行為研究-以自貢市幼兒園為例
評論
0/150
提交評論