版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、VBA筆記道具:案例一: 代碼:解析:拓展:VBA前景知識(shí):VBA所實(shí)現(xiàn)的功能簡(jiǎn)潔的說(shuō)就是通過(guò)編寫(xiě)程序,用幾個(gè)簡(jiǎn)潔操作實(shí)現(xiàn)一系列的操作,以達(dá)到高效的目的,在做重復(fù)的操作時(shí)相當(dāng)有效。在EXCEL中,要進(jìn)入VBA編輯界面,首先要調(diào)出開(kāi)發(fā)工具選項(xiàng)卡。按快捷鍵Alt+F+T到Excel選項(xiàng),在自定義功能區(qū)勾選上開(kāi)發(fā)工具并確定。在Excel中,宏功能是默認(rèn)禁用的,因?yàn)楹芏嗖《緯?huì)通過(guò)宏傳播。在使用之前需要啟用該功能。按快捷鍵Alt+F+T到Excel選項(xiàng),在信任中心信任中心設(shè)置宏設(shè)置啟用全部宏確定。VBA中有對(duì)象、方法、屬性。理解這些是學(xué)習(xí)VBA的基礎(chǔ)。1、 對(duì)象:工作簿、工作表、單元格、行、列等2、屬性
2、:相應(yīng)對(duì)象的屬性。如工作表名稱、單元格的行高等屬性一般理解為對(duì)象擁有的靜態(tài)特性。3、方法:對(duì)相應(yīng)對(duì)象所執(zhí)行的動(dòng)作稱為對(duì)象的方法。如單元格移動(dòng)、單元格刪除內(nèi)容等。從外形上來(lái)區(qū)分:前面帶綠色圖標(biāo)的就是方法,帶手形標(biāo)志的就是屬性。案例一:如何點(diǎn)擊按鈕實(shí)現(xiàn)簡(jiǎn)潔加法運(yùn)算?代碼:Sub 加法運(yùn)算過(guò)程()Cells(1,5)= Cells(1,1)+ Cells(1,3)End sub解析:在開(kāi)發(fā)工具選項(xiàng)卡中插入按鈕控件,修改宏名為“加法運(yùn)算過(guò)程”,新建,這樣就進(jìn)入VBA編輯界面。這里的宏簡(jiǎn)潔講就是編程產(chǎn)生的一系列操作,而點(diǎn)擊剛才插入的按鈕就可以觸發(fā)這些操作,這樣一個(gè)點(diǎn)擊操作就可以實(shí)現(xiàn)一系列的操作。Ctrl
3、+S保存,這里下拉菜單中文件保存類型選成“啟用宏的工作簿”。由于默認(rèn)文件類型是默認(rèn)禁用的,很多病毒會(huì)通過(guò)宏傳播,保存成xlsx則丟失代碼右擊按鈕編輯文字修改為“加法”。這里的加法是按鈕顯示出來(lái)的名稱,和宏名不一樣。宏是編程產(chǎn)生的一系列操作過(guò)程,引用宏名就代表操作這一系列過(guò)程。而按鈕可以指定不同的宏過(guò)程。在開(kāi)發(fā)工具選項(xiàng)卡中宏加法運(yùn)算過(guò)程編輯 進(jìn)入宏過(guò)程編輯界面。輸入下面代碼。上面代碼中,sub表示宏開(kāi)頭,end sub 表示宏結(jié)束,“加法運(yùn)算過(guò)程”是宏名,后面的括號(hào)可有可無(wú)。宏macroCells是VBA中最基本的對(duì)象,Cells(行號(hào),列號(hào))表示引用單元格, Cells(1,1)是指A1單元格
4、的內(nèi)容。拓展:案例二:如何點(diǎn)擊按鈕實(shí)現(xiàn)新建,保存,關(guān)閉,打開(kāi)工作簿?代碼: Workbooks.Add ActiveWorkbook.SaveAs "C:UsersAdministratorDesktop工作簿4.xlsx"ActiveWorkbook.CloseWorkbooks.Open "C:UsersAdministratorDesktop工作簿1.xlsx"Workbooks("工作簿1.xlsx").Close解析:拓展:Workbooks.open(“路徑”)也可以打開(kāi)文件案例三:定義函數(shù):(參數(shù)可以有多個(gè),用逗號(hào)隔開(kāi))
5、代碼:Function 乘積(a,b)乘積a*bEnd function解析:用函數(shù)名調(diào)用這個(gè)功能,可以在VBA中調(diào)用,也可以像其它函數(shù)一樣調(diào)用。括號(hào)內(nèi)的參數(shù)可以有多個(gè)。拓展:系統(tǒng)函數(shù):sqr(a)平方根如要在VBA中使用工作表中的函數(shù),用Apication.worksheetfunction.公式名稱() 直接調(diào)用括號(hào)中引用范圍時(shí),需要要用range等調(diào)用,不能用“A1”引用過(guò)程分為子過(guò)程和函數(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 為程序中的注釋,只起解釋作用,不會(huì)運(yùn)算。去掉時(shí),call+子過(guò)程,表示調(diào)用這個(gè)子過(guò)程。Call是過(guò)程調(diào)用的關(guān)鍵字,當(dāng)遇到call時(shí),先運(yùn)行調(diào)用的過(guò)程,再往下運(yùn)行。Sub,end sub即是一個(gè)子過(guò)程,宏是其小名
9、。過(guò)程調(diào)用的call可以省略,只寫(xiě)出過(guò)程名。拓展:案例五:地址拆分代碼: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), "號(hào)") - InStr(Cells(1, 2), "") - 1)End Sub解析:拓展:正則表達(dá)示處理字符串更容易案例一: 三重循環(huán)匯總代碼:解析:拓展:專題一:常用類、對(duì)象、屬性和方法顏色:vbredRGB(r,g,b)類Application代表EXCEL本身Workbook工作簿W(wǎng)orksheet表Range區(qū)域上下為從屬關(guān)系Cells引用單元格 是range對(duì)象的屬性相對(duì)于range cells可以實(shí)現(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行高(可以進(jìn)行設(shè)置也可以進(jìn)行msgbox顯示)withrange.font.color=.size=.bold=end with方法Cells(行數(shù),列數(shù)).selectactivecellRange引用多個(gè)單元格
12、區(qū)域如:Range("A1:A10,A18"),Range(cells(1,1), cells(10,1)屬性Range.cellsRange.value 讓選定區(qū)域的值都為某個(gè)數(shù)。此屬性可以省略,為默認(rèn)值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 目標(biāo)位置range.clearrange.clearcontentsrange.clearformats清除格式range.merge/unmerge 合并/拆分單元格Workbooks是工作簿集對(duì)象用Workbook("辦公費(fèi)用")或 Workbooks(3)引用某個(gè)工作表屬性Workbooks.count方法Workbooks.add “路徑” Workbooks.open(“路徑”)Workbooks.Open "Array.xls", ReadOnly:=TrueWorkbooks.close關(guān)閉所有打開(kāi)的工作簿
14、關(guān)閉全部工作簿W(wǎng)orkbooks(“XXX”).close 關(guān)閉特定工作簿W(wǎng)orkbooks.saveas “路徑.擴(kuò)展名” 保存文件,此處不返回值,所以不用括號(hào)Workbooks(1).Activate 激活第一個(gè)工作簿workbook是工作簿文件對(duì)象屬性Workbook. ActiveSheetWorkbook. AuthorWorkbook.savedWWorkbook.path方法Workbook.Activate Workbook.CloseWorkbook.SaveWorkbook.SaveAs另存為T(mén)hisworkbook當(dāng)前工作簿屬性Thisworkbo
15、Thisworkbook.path方法Thisworkbook.Activeworkbook活動(dòng)工作簿屬性Activeworkbook.author方法ActiveWorkbook.SaveAs "C:UsersAdministratorDesktop工作簿1.xlsx"Worksheets當(dāng)前工作簿全部的工作表用Worksheet("XX")或 Worksheets(3)引用某個(gè)工作表屬性Worksheets.countW 方法Worksheets.AddWorksheet屬性Worksheet.NameWor
16、ksheet.Visible方法Worksheet.Calculate對(duì)指定的工作表重新計(jì)算Worksheet.CopyWorksheet.Move Worksheet.DeleteSheet1sheet2ApplicationApplication.cells 表示當(dāng)前活動(dòng)表的單元格Application.Quit退出應(yīng)用Application.activeworkbook當(dāng)前活動(dòng)的簿Application.activesheet當(dāng)前活動(dòng)的表Apication.worksheetfunction.公式名稱() 直接調(diào)用括號(hào)中引用范圍時(shí),需要要用range等調(diào)用,不能用“A1”引用Applic
17、ation.displayalerts=false時(shí),則就不會(huì)顯示,強(qiáng)制掩蓋。專題二:挨次、循環(huán)、分支 三種結(jié)構(gòu)挨次循環(huán)for循環(huán)指定次數(shù)。與do while 相比,for有內(nèi)置的計(jì)數(shù)器(1)For i=1 to 20 step 1循環(huán)體Next i(單個(gè)for時(shí) i可不寫(xiě))(2)For each a in b (b.count)循環(huán)體Next a 如for each w in workbooks第一個(gè)工作表 for each w in range第一個(gè)單元格=for i=1 to b.count循環(huán)體Next iWhile循環(huán)(無(wú)特定終點(diǎn) )While 條件循環(huán)體 WendDO循環(huán)DO (D
18、O開(kāi)關(guān))LOOP(DO結(jié)尾)無(wú)限循環(huán),可以在中間用EXIT DO終止循環(huán)?;蛘呤褂肊XIT SUB結(jié)束子過(guò)程。有多層循環(huán)時(shí),跳出的是內(nèi)層do 循環(huán)EXIT forExit functionExit sub可以用于退出第一次End 結(jié)束過(guò)程或塊End for/function/sub/if/select單獨(dú)用END結(jié)束當(dāng)前過(guò)程或塊Do While循環(huán)(當(dāng))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將每個(gè)單元格指定給b,多用于對(duì)象的操作分支If分支If 條件 then計(jì)算Else (單個(gè)IF可不寫(xiě))計(jì)算End if如果if then 所有內(nèi)容在一行內(nèi),此if 可以不用end if 結(jié)束ELSEIF語(yǔ)句If 條件 then循環(huán)體Elseif 條件 then計(jì)算Elseif 條件 then計(jì)算 Else 結(jié)果End if從ABCD等級(jí)從大到小依次循環(huán)體,前面滿足后面就不會(huì)執(zhí)行。 SELECT推斷語(yǔ)句條件推斷,像if 一樣Pad=”888”SELECT CASE PADCASE “888”MSGBOX “goo
20、d”Case else (類似if中的else)MSGBOX “bad”END SELECTFor和if 協(xié)作使用,在一堆中找出一個(gè)跳轉(zhuǎn)語(yǔ)句標(biāo)識(shí):Go to 標(biāo)識(shí)Return(返回到 go to)專題三:程序調(diào)試設(shè)置斷點(diǎn):在左邊灰色區(qū)域點(diǎn)擊或者F9。單獨(dú)執(zhí)行:F8。CTRL+F8 運(yùn)行到光標(biāo)處F5運(yùn)行CTRL+BREAK 在光標(biāo)處中斷。調(diào)試添加監(jiān)視:輸入要監(jiān)視的變量,顯示變量的數(shù)值,而不用動(dòng)鼠標(biāo)位置。調(diào)試清除所有斷點(diǎn)注釋REM 注釋語(yǔ)句,或語(yǔ)法錯(cuò)誤標(biāo)記為紅色專題四:疑問(wèn)解決錄制宏:記錄手工,翻譯成代碼幫助VBA教程 專題五:運(yùn)算符算術(shù)運(yùn)算符+-*/求冪整除Mod求余連接運(yùn)算符&+針對(duì)字
21、符(&兩邊要加空格)規(guī)律運(yùn)算符and or not(符號(hào)兩邊的表達(dá)式都要完整,不能省) 優(yōu)先級(jí)not >and>or 返回true/false運(yùn)算符兩邊的表達(dá)式要完整才行關(guān)系/比較運(yùn)算符<>=<>>=<= 專題六:命名規(guī)章option explicit強(qiáng)制聲明dim a,b,c定義變量const pi=3.14 定義常量dim w1 as worksheet/workbook/rangeset w2=worksheets.add給對(duì)象賦值要在前面加set新建保存文件:Set wb=workbooks.addWb.saveas “路徑”wb
22、.close大小寫(xiě)相同盡量用英文不超過(guò)256反映變量意義不能是系統(tǒng)已用的名字。如sub,end,if ,for,while,分為常量和變量不能以數(shù)字開(kāi)頭專題七:快捷鍵工程資源管理器:CTRL+R屬性窗口:F4專題八:數(shù)據(jù)類型數(shù)據(jù)類型中文占用空間縮寫(xiě)B(tài)yte字節(jié)1字節(jié) 0-255dim a as byte (a 只能是0-255的數(shù)字)例:Dim a as byte/dim a%超過(guò)范圍將溢出類型占用符號(hào)范圍Boolean布爾2字節(jié)true或falseInteger整數(shù)2字節(jié)%Long長(zhǎng)整型4&Single單精4!Double雙精8#string字符串定或變$Currency貨幣型8變體變量DateString字符串長(zhǎng)度$Dim a as string 不定長(zhǎng)Dim a as string*3 定長(zhǎng)Object對(duì)象VariantEmpty 空專題
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度餐廳招牌設(shè)計(jì)制作合同范本3篇
- 2025年醫(yī)療器械注冊(cè)代理與質(zhì)量管理體系認(rèn)證合同4篇
- 2025年度體育賽事代理公司注銷服務(wù)協(xié)議4篇
- 2025版二手貨車交易合同范本3篇
- 2025年度城市綜合體地下空間物業(yè)服務(wù)合同4篇
- 武漢托管班2025年度教師招聘與教育咨詢服務(wù)合同3篇
- 2024版國(guó)際碳排放交易合同
- 2025版農(nóng)產(chǎn)品銷售合同范例(含保鮮物流)2篇
- 二零二五版苗圃技術(shù)員土壤改良與肥料施用合作協(xié)議4篇
- 2025版?zhèn)€人股權(quán)質(zhì)押協(xié)議(股權(quán)融資)3篇
- 小兒甲型流感護(hù)理查房
- 霧化吸入療法合理用藥專家共識(shí)(2024版)解讀
- 拆遷評(píng)估機(jī)構(gòu)選定方案
- 趣味知識(shí)問(wèn)答100道
- 鋼管豎向承載力表
- 2024年新北師大版八年級(jí)上冊(cè)物理全冊(cè)教學(xué)課件(新版教材)
- 人教版數(shù)學(xué)四年級(jí)下冊(cè)核心素養(yǎng)目標(biāo)全冊(cè)教學(xué)設(shè)計(jì)
- JJG 692-2010無(wú)創(chuàng)自動(dòng)測(cè)量血壓計(jì)
- 三年級(jí)下冊(cè)口算天天100題(A4打印版)
- CSSD職業(yè)暴露與防護(hù)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)項(xiàng)目三 移動(dòng)商務(wù)運(yùn)營(yíng)內(nèi)容的策劃和生產(chǎn)
評(píng)論
0/150
提交評(píng)論