VBA超詳細總結_第1頁
VBA超詳細總結_第2頁
VBA超詳細總結_第3頁
VBA超詳細總結_第4頁
VBA超詳細總結_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、VBA筆記道具:案例一: 代碼:解析:拓展:VBA前景知識:VBA所實現(xiàn)的功能簡潔的說就是通過編寫程序,用幾個簡潔操作實現(xiàn)一系列的操作,以達到高效的目的,在做重復的操作時相當有效。在EXCEL中,要進入VBA編輯界面,首先要調出開發(fā)工具選項卡。按快捷鍵Alt+F+T到Excel選項,在自定義功能區(qū)勾選上開發(fā)工具并確定。在Excel中,宏功能是默認禁用的,因為很多病毒會通過宏傳播。在使用之前需要啟用該功能。按快捷鍵Alt+F+T到Excel選項,在信任中心信任中心設置宏設置啟用全部宏確定。VBA中有對象、方法、屬性。理解這些是學習VBA的基礎。1、 對象:工作簿、工作表、單元格、行、列等2、屬性

2、:相應對象的屬性。如工作表名稱、單元格的行高等屬性一般理解為對象擁有的靜態(tài)特性。3、方法:對相應對象所執(zhí)行的動作稱為對象的方法。如單元格移動、單元格刪除內容等。從外形上來區(qū)分:前面帶綠色圖標的就是方法,帶手形標志的就是屬性。案例一:如何點擊按鈕實現(xiàn)簡潔加法運算?代碼:Sub 加法運算過程()Cells(1,5)= Cells(1,1)+ Cells(1,3)End sub解析:在開發(fā)工具選項卡中插入按鈕控件,修改宏名為“加法運算過程”,新建,這樣就進入VBA編輯界面。這里的宏簡潔講就是編程產(chǎn)生的一系列操作,而點擊剛才插入的按鈕就可以觸發(fā)這些操作,這樣一個點擊操作就可以實現(xiàn)一系列的操作。Ctrl

3、+S保存,這里下拉菜單中文件保存類型選成“啟用宏的工作簿”。由于默認文件類型是默認禁用的,很多病毒會通過宏傳播,保存成xlsx則丟失代碼右擊按鈕編輯文字修改為“加法”。這里的加法是按鈕顯示出來的名稱,和宏名不一樣。宏是編程產(chǎn)生的一系列操作過程,引用宏名就代表操作這一系列過程。而按鈕可以指定不同的宏過程。在開發(fā)工具選項卡中宏加法運算過程編輯 進入宏過程編輯界面。輸入下面代碼。上面代碼中,sub表示宏開頭,end sub 表示宏結束,“加法運算過程”是宏名,后面的括號可有可無。宏macroCells是VBA中最基本的對象,Cells(行號,列號)表示引用單元格, Cells(1,1)是指A1單元格

4、的內容。拓展:案例二:如何點擊按鈕實現(xiàn)新建,保存,關閉,打開工作簿?代碼: Workbooks.Add ActiveWorkbook.SaveAs "C:UsersAdministratorDesktop工作簿4.xlsx"ActiveWorkbook.CloseWorkbooks.Open "C:UsersAdministratorDesktop工作簿1.xlsx"Workbooks("工作簿1.xlsx").Close解析:拓展:Workbooks.open(“路徑”)也可以打開文件案例三:定義函數(shù):(參數(shù)可以有多個,用逗號隔開)

5、代碼:Function 乘積(a,b)乘積a*bEnd function解析:用函數(shù)名調用這個功能,可以在VBA中調用,也可以像其它函數(shù)一樣調用。括號內的參數(shù)可以有多個。拓展:系統(tǒng)函數(shù):sqr(a)平方根如要在VBA中使用工作表中的函數(shù),用Apication.worksheetfunction.公式名稱() 直接調用括號中引用范圍時,需要要用range等調用,不能用“A1”引用過程分為子過程和函數(shù)案例四:函數(shù)匯總()代碼:(1)Sub 按鈕5_Click() Dim i, j, total Dim w1 As Worksheet For j = 2 To Worksheets.Count Se

6、t w1 = Worksheets(j) i = 2 total = 0 Do While w1.Cells(i, 2) <> "" total = total + w1.Cells(i, 2) i = i + 1 Loop w1.Cells(2, 3) = total Next jEnd Sub(2)Sub 按鈕6_Click() 'Call 按鈕5_Click Dim i Dim w1 As Worksheet, w2 As Worksheet Set w2 = Worksheets(1) For i = 2 To Worksheets.Count

7、Set w1 = Worksheets(i) w2.Cells(i, 1) = w1.Cells(1, 2) w2.Cells(i, 2) = w1.Cells(2, 3) Next iEnd Sub(3)Sub 按鈕7_Click() Dim i, j, total Dim w1 As Worksheet, w2 As Worksheet Set w2 = Worksheets(1) For i = 2 To Worksheets.Count Set w1 = Worksheets(i) 'i循環(huán)工作表 j = 2 'j循環(huán)成果 total = 0 Do While w1.C

8、ells(j, 2) <> "" total = total + w1.Cells(j, 2) j = j + 1 Loop w1.Cells(2, 3) = total w2.Cells(i, 1) = w1.Cells(1, 2) w2.Cells(i, 2) = w1.Cells(2, 3) Next i解析:'Call 按鈕5_Click 為程序中的注釋,只起解釋作用,不會運算。去掉時,call+子過程,表示調用這個子過程。Call是過程調用的關鍵字,當遇到call時,先運行調用的過程,再往下運行。Sub,end sub即是一個子過程,宏是其小名

9、。過程調用的call可以省略,只寫出過程名。拓展:案例五:地址拆分代碼:Sub 地址拆分() Cells(2, 2) = Left(Cells(1, 2), InStr(Cells(1, 2), "縣") - 1) Cells(3, 2) = Mid(Cells(1, 2), InStr(Cells(1, 2), "縣") + 1, InStr(Cells(1, 2), "路") - InStr(Cells(1, 2), "縣") - 1) Cells(4, 2) = Mid(Cells(1, 2), InStr(

10、Cells(1, 2), "路") + 1, InStr(Cells(1, 2), "號") - InStr(Cells(1, 2), "") - 1)End Sub解析:拓展:正則表達示處理字符串更容易案例一: 三重循環(huán)匯總代碼:解析:拓展:專題一:常用類、對象、屬性和方法顏色:vbredRGB(r,g,b)類Application代表EXCEL本身Workbook工作簿W(wǎng)orksheet表Range區(qū)域上下為從屬關系Cells引用單元格 是range對象的屬性相對于range cells可以實現(xiàn)循環(huán)屬性Cells(行數(shù),列數(shù)).v

11、alueCells(行數(shù),列數(shù)).font.sizeCells(行數(shù),列數(shù)).font.color=Cells(行數(shù),列數(shù)).字體大小Cells(行數(shù),列數(shù)).font.fontstyle字體加粗Cells(行數(shù),列數(shù)).Interior.color背景顏色Cells(行數(shù),列數(shù)).height單元格行高(只能在顯示中用)Cells(行數(shù),列數(shù)).rowheight行高(可以進行設置也可以進行msgbox顯示)withrange.font.color=.size=.bold=end with方法Cells(行數(shù),列數(shù)).selectactivecellRange引用多個單元格

12、區(qū)域如:Range("A1:A10,A18"),Range(cells(1,1), cells(10,1)屬性Range.cellsRange.value 讓選定區(qū)域的值都為某個數(shù)。此屬性可以省略,為默認值range.font.size/color/italic/bold/= (bold為粗體 italic為斜休(用ture,false確定)range. Interior.color背景顏色range. Interior.colorindex=7背景顏色方法Range.deleteRange("A2:D10").SelectRange("A2:

13、D10").copy 目標位置range.clearrange.clearcontentsrange.clearformats清除格式range.merge/unmerge 合并/拆分單元格Workbooks是工作簿集對象用Workbook("辦公費用")或 Workbooks(3)引用某個工作表屬性Workbooks.count方法Workbooks.add “路徑” Workbooks.open(“路徑”)Workbooks.Open "Array.xls", ReadOnly:=TrueWorkbooks.close關閉所有打開的工作簿

14、關閉全部工作簿W(wǎng)orkbooks(“XXX”).close 關閉特定工作簿W(wǎng)orkbooks.saveas “路徑.擴展名” 保存文件,此處不返回值,所以不用括號Workbooks(1).Activate 激活第一個工作簿workbook是工作簿文件對象屬性Workbook. ActiveSheetWorkbook. AuthorWorkbook.savedWWorkbook.path方法Workbook.Activate Workbook.CloseWorkbook.SaveWorkbook.SaveAs另存為Thisworkbook當前工作簿屬性Thisworkbo

15、Thisworkbook.path方法Thisworkbook.Activeworkbook活動工作簿屬性Activeworkbook.author方法ActiveWorkbook.SaveAs "C:UsersAdministratorDesktop工作簿1.xlsx"Worksheets當前工作簿全部的工作表用Worksheet("XX")或 Worksheets(3)引用某個工作表屬性Worksheets.countW 方法Worksheets.AddWorksheet屬性Worksheet.NameWor

16、ksheet.Visible方法Worksheet.Calculate對指定的工作表重新計算Worksheet.CopyWorksheet.Move Worksheet.DeleteSheet1sheet2ApplicationApplication.cells 表示當前活動表的單元格Application.Quit退出應用Application.activeworkbook當前活動的簿Application.activesheet當前活動的表Apication.worksheetfunction.公式名稱() 直接調用括號中引用范圍時,需要要用range等調用,不能用“A1”引用Applic

17、ation.displayalerts=false時,則就不會顯示,強制掩蓋。專題二:挨次、循環(huán)、分支 三種結構挨次循環(huán)for循環(huán)指定次數(shù)。與do while 相比,for有內置的計數(shù)器(1)For i=1 to 20 step 1循環(huán)體Next i(單個for時 i可不寫)(2)For each a in b (b.count)循環(huán)體Next a 如for each w in workbooks第一個工作表 for each w in range第一個單元格=for i=1 to b.count循環(huán)體Next iWhile循環(huán)(無特定終點 )While 條件循環(huán)體 WendDO循環(huán)DO (D

18、O開關)LOOP(DO結尾)無限循環(huán),可以在中間用EXIT DO終止循環(huán)。或者使用EXIT SUB結束子過程。有多層循環(huán)時,跳出的是內層do 循環(huán)EXIT forExit functionExit sub可以用于退出第一次End 結束過程或塊End for/function/sub/if/select單獨用END結束當前過程或塊Do While循環(huán)(當)Do While 條件循環(huán)體Loop其中do是循環(huán),while是條件Do until(直到)Do until 條件循環(huán)體LoopWhile和until可以放在loop之后,表示先循環(huán)再推斷。For each a in bDim b as ran

19、geFor each b in sheet1.range(“A3:A11”)Next將每個單元格指定給b,多用于對象的操作分支If分支If 條件 then計算Else (單個IF可不寫)計算End if如果if then 所有內容在一行內,此if 可以不用end if 結束ELSEIF語句If 條件 then循環(huán)體Elseif 條件 then計算Elseif 條件 then計算 Else 結果End if從ABCD等級從大到小依次循環(huán)體,前面滿足后面就不會執(zhí)行。 SELECT推斷語句條件推斷,像if 一樣Pad=”888”SELECT CASE PADCASE “888”MSGBOX “goo

20、d”Case else (類似if中的else)MSGBOX “bad”END SELECTFor和if 協(xié)作使用,在一堆中找出一個跳轉語句標識:Go to 標識Return(返回到 go to)專題三:程序調試設置斷點:在左邊灰色區(qū)域點擊或者F9。單獨執(zhí)行:F8。CTRL+F8 運行到光標處F5運行CTRL+BREAK 在光標處中斷。調試添加監(jiān)視:輸入要監(jiān)視的變量,顯示變量的數(shù)值,而不用動鼠標位置。調試清除所有斷點注釋REM 注釋語句,或語法錯誤標記為紅色專題四:疑問解決錄制宏:記錄手工,翻譯成代碼幫助VBA教程 專題五:運算符算術運算符+-*/求冪整除Mod求余連接運算符&+針對字

21、符(&兩邊要加空格)規(guī)律運算符and or not(符號兩邊的表達式都要完整,不能省) 優(yōu)先級not >and>or 返回true/false運算符兩邊的表達式要完整才行關系/比較運算符<>=<>>=<= 專題六:命名規(guī)章option explicit強制聲明dim a,b,c定義變量const pi=3.14 定義常量dim w1 as worksheet/workbook/rangeset w2=worksheets.add給對象賦值要在前面加set新建保存文件:Set wb=workbooks.addWb.saveas “路徑”wb

22、.close大小寫相同盡量用英文不超過256反映變量意義不能是系統(tǒng)已用的名字。如sub,end,if ,for,while,分為常量和變量不能以數(shù)字開頭專題七:快捷鍵工程資源管理器:CTRL+R屬性窗口:F4專題八:數(shù)據(jù)類型數(shù)據(jù)類型中文占用空間縮寫B(tài)yte字節(jié)1字節(jié) 0-255dim a as byte (a 只能是0-255的數(shù)字)例:Dim a as byte/dim a%超過范圍將溢出類型占用符號范圍Boolean布爾2字節(jié)true或falseInteger整數(shù)2字節(jié)%Long長整型4&Single單精4!Double雙精8#string字符串定或變$Currency貨幣型8變體變量DateString字符串長度$Dim a as string 不定長Dim a as string*3 定長Object對象VariantEmpty 空專題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論