




已閱讀5頁(yè),還剩103頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VBA基礎(chǔ) 2020 3 13 數(shù)組 VBA程序流程控制 VBA常用語(yǔ)句 VBA編程基礎(chǔ) VBA概念 VBA概念 1 1VBA簡(jiǎn)介 VBA VisualBasicforApplication 是MicrosoftOffice系列軟件的內(nèi)置編程語(yǔ)言 其語(yǔ)法結(jié)構(gòu)與VisualBasic編程語(yǔ)言互相兼容 采用的是面向?qū)ο蟮木幊虣C(jī)制和可視化的編程環(huán)境 1 2面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念 1 集合和對(duì)象VBA中的應(yīng)用程序是由許多對(duì)象組成的 如表 窗體 查詢(xún)等 對(duì)象是幫助構(gòu)造應(yīng)用程序的元素 以特定的方式組織這些對(duì)象 就形成了應(yīng)用程序 2 對(duì)象的屬性 事件和方法屬性屬性描述了對(duì)象的自身性質(zhì)其格式為 對(duì)象名 屬性 屬性值 1 2面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念 事件事件是指可以發(fā)生在一個(gè)對(duì)象上且能夠被該對(duì)象所識(shí)別的動(dòng)作 如 單擊某個(gè)命令按鈕就產(chǎn)生該按鈕的 單擊 事件當(dāng)某個(gè)對(duì)象發(fā)生某一事件后 就會(huì)驅(qū)動(dòng)系統(tǒng)去執(zhí)行預(yù)先編好的 與這一事件相對(duì)應(yīng)的一段程序 方法方法是系統(tǒng)事先設(shè)計(jì)好的 可以完成一定操作的特殊過(guò)程 是附屬于對(duì)象的行為和動(dòng)作 在需要使用的時(shí)候可以直接調(diào)用 其格式為 對(duì)象名 方法名 常見(jiàn)對(duì)象及其含義 1 3VBA編程環(huán)境 VBA中的程序與函數(shù)共有 種 一般程序 Sub 事件程序 Event 屬性程序 Property 和函數(shù) Function VBA程序窗口共 種 代碼窗口 立即窗口 本地窗口 監(jiān)視窗口 工程資源管理器和屬性窗口在VBE環(huán)境中編寫(xiě)VBA代碼 工程窗口 選擇對(duì)象 屬性窗口 選擇對(duì)象的屬性 代碼窗口 選擇事件 VBE編程環(huán)境 標(biāo)準(zhǔn)工具條 視圖MicrosoftExcel按鈕 切換Excel窗口 插入按鈕 插入模塊或過(guò)程 運(yùn)行子過(guò)程 用戶(hù)窗體按鈕 運(yùn)行模塊中的程序 中斷按鈕 中斷正在運(yùn)行的程序 重新設(shè)置按鈕 結(jié)束正在運(yùn)行的程序 設(shè)置模式按鈕 在設(shè)計(jì)模式和非設(shè)計(jì)模式之間切換 工程資源管理器按鈕 用于打開(kāi)工程資源管理器 屬性窗口按鈕 用于打開(kāi)屬性窗口 對(duì)象瀏覽器按鈕 用于打開(kāi)對(duì)象瀏覽器 MicrosoftExcel 插入模塊 運(yùn)行子過(guò)程 用戶(hù)窗體 設(shè)計(jì)模式 中斷 重新設(shè)計(jì) 工程資源管理器 對(duì)象瀏覽器 屬性窗口 新建一個(gè)窗體并添加兩個(gè)命令按鈕 運(yùn)行窗體后 單擊第一個(gè)按鈕 顯示一個(gè)消息框 單擊第二個(gè)按鈕 退出當(dāng)前窗體 通過(guò)此例 體會(huì)可視化編程 面向?qū)ο?事件過(guò)程 應(yīng)用方法等基本概念 數(shù)組 VBA程序流程控制 VBA常用語(yǔ)句 VBA編程基礎(chǔ) VBA概念 VBA編程基礎(chǔ) 2 1常量 變量 VBA使用常量 變量來(lái)存儲(chǔ)值 用來(lái)保存在程序運(yùn)行期間數(shù)據(jù) 常量 在程序運(yùn)行中其存儲(chǔ)的值不會(huì)改變 變量 在程序運(yùn)行中其值可以改變 2 1 1常量 在程序運(yùn)行過(guò)程中 其值不會(huì)被改變的量稱(chēng)為常量 在VBA中有三類(lèi)常量 1 直接常量如 10 20 123 0 AB VBA程序設(shè)計(jì) 等2 符號(hào)常量3 系統(tǒng)常量指VBA系統(tǒng)預(yù)先定義好的 用戶(hù)可以直接引用的量 如 acForm acQuery vbOk vbRed 符號(hào)常量 在程序中 某個(gè)常量多次被使用 則可以使用一個(gè)符號(hào)來(lái)代替該常量 這樣不僅在書(shū)寫(xiě)上方便 而且有效地改進(jìn)了程序的可讀性和可維護(hù)性 VBA中使用關(guān)鍵字Const聲明符號(hào)常量 其格式如下 Const常量名 類(lèi)型符號(hào) 常數(shù)表達(dá)式如 ConstPI 3 1415926 2 1 2變量 變量是內(nèi)存中的臨時(shí)單元 存放在程序執(zhí)行過(guò)程中產(chǎn)生的中間結(jié)果和最后輸出結(jié)果 在程序中使用變量 就要給變量定義名稱(chēng)及類(lèi)型 即對(duì)變量進(jìn)行聲明 變量命名規(guī)則 1 變量名必須以字母或漢字開(kāi)頭 后可跟字母 漢字 數(shù)字或下劃線組成 不能含有小數(shù)點(diǎn)和空格 長(zhǎng)度不超過(guò)255個(gè)字符的字符串 2 不能使用VBA中的關(guān)鍵字 3 VBA中不區(qū)分變量名的大小寫(xiě) 4 變量名的最后一個(gè)字符可以是 等表示數(shù)據(jù)類(lèi)型的聲明符 說(shuō)明 常量名的命名規(guī)則與變量名的命名規(guī)則相同 2 2數(shù)據(jù)類(lèi)型與變量的聲明 在VBA中 數(shù)據(jù)類(lèi)型用來(lái)決定變量可以保存何種數(shù)據(jù) VBA支持多種數(shù)據(jù)類(lèi)型 為用戶(hù)編程提供了方便 2 2 1VBA的數(shù)據(jù)類(lèi)型 2 2 2變量聲明 用Dim或Static語(yǔ)句顯式聲明局部變量格式 Dim變量名 AS類(lèi)型 或Dim變量名類(lèi)型符語(yǔ)句中的 As類(lèi)型 子句是可選的 如果使用該子句 就可以定義變量的數(shù)據(jù)類(lèi)型 未使用 默認(rèn)變量的類(lèi)型為變體型 Variant 例如 DimiAsinteger s表示聲明了一個(gè)名為i的整型變量和一個(gè)名為s的變體型變量 關(guān)鍵字Dim或Static的區(qū)別 Dim聲明 隨過(guò)程的調(diào)用而分配存貯單元 每次調(diào)用都對(duì)變量初始化 過(guò)程體結(jié)束 變量的內(nèi)容自動(dòng)消失 存儲(chǔ)單元釋放 Static聲明 Static聲明的變量 也稱(chēng)為靜態(tài)變量 靜態(tài)變量在程序運(yùn)行過(guò)程中一直保留其值 即每次調(diào)用過(guò)程 變量保持原來(lái)的值 數(shù)據(jù)類(lèi)型的轉(zhuǎn)換函數(shù)列表 識(shí)別數(shù)據(jù)類(lèi)型的函數(shù)TypeName Subabc DimiAsIntegerDimstrAsStringi 10MsgBoxTypeName i str CStr i MsgBoxTypeName str EndSub 隱式聲明變量 未進(jìn)行上述的聲明而直接使用變量 稱(chēng)變量的隱式聲明 采用隱式聲明的變量都是變體型 Variant 注意 VBA中允許不事先聲明而直接使用變量 可以通過(guò)語(yǔ)句OptionExplicit 來(lái)要求所使用的變量必須事先聲明 否則VBA會(huì)發(fā)出警告信息 變量a b Sum都沒(méi)有事先定義 PrivateSubForm Click Sum 0a 10b 20Sum a bDebug Print Sum SumEndSub 良好的編程習(xí)慣應(yīng)該是 先聲明變量 后使用變量 這樣做可以提高程序的效率 同時(shí)也使程序易于調(diào)試 VBA中可以強(qiáng)制顯式聲明 可以在窗體模塊 標(biāo)準(zhǔn)模塊和類(lèi)模塊的通用聲明段中加入語(yǔ)句 OptionExplicit 變量的初始化 聲明而未賦值的變量的值為 數(shù)值型變量初始化為0 字符型變量為零長(zhǎng)度字符串 變體型變量初始化為Empty 2 3 1算術(shù)運(yùn)算符 2 3 2連接運(yùn)算符 連接運(yùn)算符 字符串連接 例如 123 456 結(jié)果 123456 123 456 結(jié)果 123456 使用上 與 的區(qū)別 例如 abcdef 12345結(jié)果為 abcdef12345 123 456結(jié)果為 123456 abcdef 12345結(jié)果為出錯(cuò) 123 456結(jié)果為579 2 3 3關(guān)系運(yùn)算符 將兩個(gè)操作數(shù)進(jìn)行大小比較 結(jié)果為邏輯值 注意 字符串比較 則按字符的ASCII碼值從左到右一一比較 直到出現(xiàn)不同的字符為止 2 3 4邏輯運(yùn)算符 將操作數(shù)進(jìn)行邏輯運(yùn)算 結(jié)果是邏輯值 舉例 例1 用人單位招聘秘書(shū) 年齡小于40歲的女性 學(xué)歷專(zhuān)科或本科 正確的VBA表達(dá)式 3 xAndx 7錯(cuò)誤的VBA表達(dá)式 3 x 7或3 xOrx 7 年齡 40 性別 女 學(xué)歷 專(zhuān)科 學(xué)歷 本科 AndAndOr 例2 算術(shù)表達(dá)式 2 3 5簡(jiǎn)單的字符處理函數(shù) OptionCompare設(shè)置字符串比較規(guī)則 OptionCompare Binary Text Database OptionCompareBinary 是根據(jù)字符的內(nèi)部二進(jìn)制表示導(dǎo)出的一種排序A Z a z 漢字OptionCompareText 是根據(jù)系統(tǒng)區(qū)域確定的一種不區(qū)分大小寫(xiě)的一種排序 A a B b Z z 結(jié)果 True 結(jié)果 False StrComp比較兩個(gè)字符串 StrConv字符串類(lèi)型轉(zhuǎn)換 StrConv字符串類(lèi)型轉(zhuǎn)換 例 MsgBoxstrConv English vbUpperCase Chr 10 strConv English vbLowerCase Chr 10 strConv english vbProperCase Chr 10 strConv English vbWide Format格式化字符串 MsgBoxFORMAT Date yyyy年m月d日 Chr 10 FORMAT Date aaaa vbaOKOnly 現(xiàn)在是 LCase UCase大小寫(xiě)轉(zhuǎn)換 Sub大小寫(xiě)轉(zhuǎn)換 MsgBoxLCase HELLOWORLD Chr 10 UCase helloworld EndSub String Space重復(fù)字符 Sub重復(fù)字符 MsgBoxString 5 Space 3 String 5 EndSub Lset Rset字符串往左 右對(duì)齊 Sub字符左右對(duì)齊 Dimstr1 str2AsStringstr1 大連華信計(jì)算機(jī)技術(shù)股份有限公司 LSetstr1 華信培訓(xùn) str2 大連華信計(jì)算機(jī)技術(shù)股份有限公司 RSetstr2 華信培訓(xùn) MsgBox str1 Chr 10 str2 EndSub Instr返回字符出現(xiàn)位置 Sub查找位置 MsgBoxInStr 大連華信計(jì)算機(jī)技術(shù)股份有限公司 信 EndSub Left Mid Right從左 中 右取值 Sub取值 DimstrAsStringstr 大連華信計(jì)算機(jī)技術(shù)股份有限公司 MsgBoxLeft str 2 Mid str 3 2 Right str 2 EndSub LTrim RTrim Trim去除空格 Subabc Dimstr1 str2AsStringstr1 大連 str2 華信 MsgBoxTrim str1 str2 666 MsgBoxLTrim str1 RTrim str2 666 EndSub Like字符串相似度比較 Subabc result stringlikpattern 任何單一字符 零個(gè)或多個(gè)字符 任何一個(gè)數(shù)字 0 9 Dimstr1AsStringstr1 abda Ifstr1Like ThenMsgBox 相似 Ifstr1Like a ThenMsgBox 相似 If1234Like ThenMsgBox 相似 EndSub 2 4表達(dá)式 組成由變量 常量 函數(shù)等運(yùn)算對(duì)象加上運(yùn)算符 圓括號(hào)組成的式子 書(shū)寫(xiě)規(guī)則 1 運(yùn)算符不能相鄰 例a b是錯(cuò)誤的 2 乘號(hào)不能省略 例x乘以y應(yīng)寫(xiě)成 x y 3 括號(hào)必須成對(duì)出現(xiàn) 均使用圓括號(hào) 4 表達(dá)式從左到右在同一基準(zhǔn)上書(shū)寫(xiě) 無(wú)高低 運(yùn)算優(yōu)先級(jí)算術(shù)運(yùn)算符 連接運(yùn)算符 關(guān)系運(yùn)算符 邏輯運(yùn)算 2 5常用函數(shù) 函數(shù)實(shí)際上是系統(tǒng)事先定義好的內(nèi)部程序 用來(lái)完成特定的功能 VBA提供了大量的內(nèi)部函數(shù) 供用戶(hù)在編程時(shí)使用 函數(shù)的調(diào)用形式為 函數(shù)名 參數(shù)表 常用內(nèi)部函數(shù)常用內(nèi)部函數(shù) 在立即窗口練習(xí) 體會(huì)函數(shù)的功能 請(qǐng)參照 VBA函數(shù)參考手冊(cè) 2 6模塊 函數(shù)和過(guò)程 模塊是自定義的過(guò)程 函數(shù)保存的地方 也是錄制的宏保存的場(chǎng)所 有兩種基本類(lèi)型的模塊 類(lèi)模塊和標(biāo)準(zhǔn)模塊 模塊可以通過(guò)右鍵單擊工程資源管理器的工程名 選擇 插入 模塊 來(lái)新建 新建的模塊缺省的名稱(chēng)為 模塊1 模塊2 建議在屬性窗口內(nèi)更改為有意義的名稱(chēng) 模塊任務(wù) 1 保存過(guò)程和函數(shù) 2 定義模塊內(nèi)的私有變量或整個(gè)工程的公有變量 2 7過(guò)程 過(guò)程是最基本的運(yùn)行單位語(yǔ)法 Private Public Friend Static Subname arglist statements ExitSub statements EndSub在以上程序中 Sub代表過(guò)程種類(lèi) 表示運(yùn)行指定的操作 但不返回運(yùn)行結(jié)果 部分描述 2 8函數(shù) 函數(shù)是具有返回值的過(guò)程語(yǔ)法 Public Private Friend Static Functionname arglist Astype statements name expression ExitFunction statements name expression EndFunction 部分描述 函數(shù)和過(guò)程區(qū)別 調(diào)用一個(gè)過(guò)程 Sub 時(shí) 必須鍵入過(guò)程名稱(chēng)以及任何需要的參數(shù)值 Call語(yǔ)句可有可無(wú) 如果使用它 則參數(shù)必須以括號(hào)括起來(lái) 調(diào)用函數(shù) Function 時(shí) 為了使用函數(shù)的返回值 必須指定函數(shù)給變量 并且用括號(hào)將參數(shù)封閉起來(lái) 數(shù)組 VBA程序流程控制 VBA常用語(yǔ)句 VBA編程基礎(chǔ) VBA概念 VBA常用語(yǔ)句 3 1VBA語(yǔ)句書(shū)寫(xiě)規(guī)則 VBA代碼不區(qū)分字母的大小寫(xiě)系統(tǒng)保留字自動(dòng)轉(zhuǎn)換每個(gè)單詞的首字母大寫(xiě) 語(yǔ)句書(shū)寫(xiě)自由一行可書(shū)寫(xiě)幾句語(yǔ)句 之間用冒號(hào) 分隔 一句語(yǔ)句可分若干行書(shū)寫(xiě) 用續(xù)行符 將語(yǔ)句分開(kāi) 3 2VBA常用語(yǔ)句 賦值語(yǔ)句 給變量 常量或?qū)ο蟮膶傩灾付ㄒ粋€(gè)值或表達(dá)式 格式 變量名 表達(dá)式作用 將表達(dá)式的值賦值給變量名 一般用于給變量賦值或?qū)丶O(shè)定屬性值 例如 s 10Text1 Text 歡迎使用VBA 注意 雖然賦值號(hào)與關(guān)系運(yùn)算符等于號(hào)都用 表示 VBA會(huì)根據(jù)所處的位置自動(dòng)判斷是何種意義的符號(hào) 聲明語(yǔ)句 命名和定義常量 變量 數(shù)組以及過(guò)程 注釋語(yǔ)句在程序中的適當(dāng)位置加上注釋語(yǔ)句有利于程序的維護(hù)和閱讀 格式 Rem注釋內(nèi)容或用單引號(hào) 注釋內(nèi)容 數(shù)組 VBA程序流程控制 VBA常用語(yǔ)句 VBA編程基礎(chǔ) VBA概念 VBA程序流程控制 順序 分支 循環(huán) 結(jié)構(gòu)化程序設(shè)計(jì)由順序 分支 循環(huán)這3種基本結(jié)構(gòu)所組成 4 1分支結(jié)構(gòu) 單行If語(yǔ)句格式 If表達(dá)式Then語(yǔ)句1 Else語(yǔ)句2 功能 If測(cè)試指定的條件 如果條件表達(dá)式為真 True 則執(zhí)行Then后面的語(yǔ)句1 否則執(zhí)行語(yǔ)句2 若Else子句未省略 PrivateSubp1 DimxAsInteger yAsIntegerx InputBox 請(qǐng)輸入x值 Ifx 0Theny 2 x 1Elsey 1MsgBox y yEndSub 根據(jù)輸入x的值 觀察y的輸出結(jié)果 單行If語(yǔ)句舉例 多行If語(yǔ)句 語(yǔ)句組可以由一條或多條語(yǔ)句組成 語(yǔ)句組不能與Then書(shū)寫(xiě)在同一行 否則VBA認(rèn)為是一個(gè)單行If語(yǔ)句 會(huì)導(dǎo)致Else沒(méi)有匹配的If 語(yǔ)句 EndIf 是多行If語(yǔ)句的結(jié)束標(biāo)志 在多行If語(yǔ)句中 即使省略Else子句 也要寫(xiě)該結(jié)束標(biāo)志 省略Else子句時(shí)的多行If語(yǔ)句形式為 If表達(dá)式Then語(yǔ)句組EndIf 例 計(jì)算分段函數(shù) 單行If語(yǔ)句實(shí)現(xiàn) Ifx 0Theny cos x x 3 3 xIfx0Theny sin x sqr x x 1 多行If語(yǔ)句實(shí)現(xiàn) Ifx0Theny sin x sqr x x 1 Elsey cos x x 3 3 xEndIf If語(yǔ)句的嵌套 If語(yǔ)句的嵌套是指If或Else后面的語(yǔ)句塊中又包含If語(yǔ)句 IfThenIfThen EndIf EndIf 例 已知x y z三個(gè)數(shù) 使得x y z用一個(gè)IF語(yǔ)句和一個(gè)嵌套的IF語(yǔ)句實(shí)現(xiàn) Ifx yThent x x y y tIfy zThent y y z z tIfx yThent x x y y tEndIfEndIf If語(yǔ)句的嵌套注意事項(xiàng) 書(shū)寫(xiě)鋸齒型 If與EndIf配對(duì) IfThenElseIfThen Else語(yǔ)句塊n 1 EndIf If Then ElseIf語(yǔ)句 多分支結(jié)構(gòu) 說(shuō)明 不管有幾個(gè)分支 依次判斷 當(dāng)某條件滿(mǎn)足 執(zhí)行相應(yīng)的語(yǔ)句 其余分支不再執(zhí)行 若條件都不滿(mǎn)足 且有Else子句 則執(zhí)行該語(yǔ)句塊 否則什么也不執(zhí)行 ElseIf不能寫(xiě)成ElseIf 例 已知百分制成績(jī)mark 顯示對(duì)應(yīng)的五級(jí)制成績(jī)下列三種方法哪些正確 哪些錯(cuò)誤 與同類(lèi)型的下面四種形式之一 表達(dá)式例 A 一組枚舉表達(dá)式 用逗號(hào)分隔 2 4 6 8表達(dá)式1To表達(dá)式260To100Is關(guān)系運(yùn)算符表達(dá)式Is 60 語(yǔ)句格式 SelectCase變量或表達(dá)式Case表達(dá)式列表1語(yǔ)句塊1Case表達(dá)式列表2語(yǔ)句塊2 CaseElse語(yǔ)句塊n 1 EndSelect 數(shù)值型或字符串表達(dá)式 SelectCase語(yǔ)句 情況語(yǔ)句 程序流程圖 變量strC中存放一個(gè)字符 判斷該字符類(lèi)型 例如 在輸入成績(jī)文本框中輸入一個(gè)分?jǐn)?shù) 單擊 判斷 命令按鈕后 在成績(jī)等級(jí)文本框中顯示對(duì)應(yīng)的成績(jī)等級(jí) 輸入的成績(jī)?cè)?0 100分為A 80 89分為B 70 79分為C 60 69分為D 0 59分為E 否則顯示出錯(cuò)信息 注意 根據(jù)題意 當(dāng)輸入的成績(jī)不在 0 100 內(nèi)時(shí) 應(yīng)顯示出錯(cuò)信息 在該范圍內(nèi)時(shí) 應(yīng)進(jìn)行分等級(jí) 判斷是否為合法成績(jī)可用If語(yǔ)句 而分等級(jí)最好使用SelectCase語(yǔ)句 條件函數(shù) IIf函數(shù)形式為 IIf 表達(dá)式 當(dāng)表達(dá)式為T(mén)rue時(shí)的值 當(dāng)表達(dá)式為False時(shí)的值 例如 求x y中大的數(shù) 放入max變量中 max IIf x y x y 循環(huán)結(jié)構(gòu) For Next循環(huán)Do Loop循環(huán) For Next循環(huán)語(yǔ)句 For Next循環(huán)結(jié)構(gòu) 將一段程序重復(fù)執(zhí)行指定的次數(shù) 其中使用一個(gè)計(jì)數(shù)變量 統(tǒng)計(jì)執(zhí)行的次數(shù) 格式 For循環(huán)變量 初值to終值 Step步長(zhǎng) 語(yǔ)句塊 ExitFor 語(yǔ)句塊Next 循環(huán)變量 循環(huán)變量 終值 ExitFor 語(yǔ)句塊 注意 功能 執(zhí)行For語(yǔ)句時(shí) 循環(huán)變量 設(shè)為 初值 執(zhí)行到Next語(yǔ)句時(shí) 步長(zhǎng)加 減 到循環(huán)變量上 再執(zhí)行For語(yǔ)句時(shí) 若 循環(huán)變量 超過(guò) 終值 則循環(huán)結(jié)束 步長(zhǎng) 未指定值時(shí)默認(rèn)為1 若 步長(zhǎng) 是正數(shù)或0 則 初值 應(yīng)大于等于 終值 否則 初值 應(yīng)小于等于 終值 例 計(jì)算累加程序S 1 2 3 4 x 并輸出結(jié)果 方法 接收一個(gè)累加的終值 確定一個(gè)循環(huán)變量 循環(huán)變量有2個(gè)作用 加數(shù)和循環(huán)變量 確定一個(gè)存儲(chǔ)累加和的變量 使用循環(huán)計(jì)算 最后輸出顯示結(jié)果 DimsAsinteger xAsintegerx InputBox 請(qǐng)輸入累加的終值 Fori lToxs s iNext思考 計(jì)算 1 3 5 7 X或2 4 6 8 X如何編寫(xiě) 例 計(jì)算累乘程序S 1 2 3 4 X 方法 接收一個(gè)累乘的終值 確定一個(gè)循環(huán)變量 循環(huán)變量有2個(gè)作用 乘數(shù)和循環(huán)變量 確定一個(gè)存儲(chǔ)累乘積的變量 使用循環(huán)計(jì)算 最后輸出顯示結(jié)果 DimSAsinteger iAsintegerx InputBox 請(qǐng)輸入累加的終值 S 1Fori lToxS S iNext注意 累乘的乘數(shù)和乘積變量的初值為1 注意 出了循環(huán) 循環(huán)控制變量值的問(wèn)題 例程序段 Fori 2To13Step3循環(huán)執(zhí)行次數(shù)debug Printi輸出i的值分別為 25811Nextidebug Printi出了循環(huán)輸出為 i 14 例 改變循環(huán)控制變量對(duì)循環(huán)的影響 PrivateSubCommand1 Click j 0Fori 1To20Step2i i 3j j 1Print 第 j 次循環(huán)i iNextiPrint 退出循環(huán)后i iEndSub正常情況 i 1 3 5 7 9 11 13 15 17 19現(xiàn)在 i 4 9 14 19 Do Loop循環(huán)語(yǔ)句 形式1 Do While Until 語(yǔ)句塊 ExitDo語(yǔ)句塊 Loop 形式2 Do語(yǔ)句塊 ExitDo語(yǔ)句塊 Loop While Until Do Loop循環(huán)語(yǔ)句 Do Loop語(yǔ)句 循環(huán)結(jié)構(gòu) DoWhile Loop語(yǔ)句DoUntil Loop語(yǔ)句Do LoopWhile語(yǔ)句Do LoopUntil語(yǔ)句 DoWhile Loop語(yǔ)句 i 1DoWhilei 10s s ii i 1Loop當(dāng)i 10成立時(shí) 執(zhí)行循環(huán)體循環(huán)變量i必須有初值防止產(chǎn)生死循環(huán)有可能一次也不執(zhí)行循環(huán)體 修改循環(huán)控制變量 改變加數(shù)值 Do LoopWhile i 1Dos s ii i 1LoopWhilei 10當(dāng)i 10成立時(shí) 執(zhí)行循環(huán)體循環(huán)變量i必須有初值防止產(chǎn)生死循環(huán)至少執(zhí)行一次循環(huán)體 修改循環(huán)控制變量 改變加數(shù)值 DoUntil Loop i 1DoUntili 10s s ii i 1Loop當(dāng)i 10成立時(shí) 結(jié)束執(zhí)行循環(huán)體循環(huán)變量i必須有初值防止產(chǎn)生死循環(huán)有可能一次也不執(zhí)行循環(huán)體 修改循環(huán)控制變量 改變加數(shù)值 Do LoopUntil i 1Dos s ii i 1LoopUntili 10當(dāng)i 10成立時(shí) 結(jié)束執(zhí)行循環(huán)體循環(huán)變量i必須有初值防止產(chǎn)生死循環(huán)至少執(zhí)行一次循環(huán)體 修改循環(huán)控制變量 改變加數(shù)值 補(bǔ)充 While Wend語(yǔ)句 格式如下 WhileWend說(shuō)明 該語(yǔ)句的功能與DoWhile Loop實(shí)現(xiàn)的循環(huán)完全相同 注意 三種循環(huán)語(yǔ)句 即For Do Loop 共同的特點(diǎn)是重復(fù)執(zhí)行一個(gè)語(yǔ)句系列 循環(huán)體 不同點(diǎn)是控制重復(fù)次數(shù)的時(shí)機(jī)和方法不一樣 數(shù)組 VBA程序流程控制 VBA常用語(yǔ)句 VBA編程基礎(chǔ) VBA概念 數(shù)組 5 1數(shù)組的概念 數(shù)組 數(shù)組不是一種數(shù)據(jù)類(lèi)型 而是一組相同類(lèi)型的變量的集合 可以像使用普通變量一樣使用數(shù)組中的每一個(gè)元素 使用數(shù)組的好處是用一個(gè)數(shù)組名代表邏輯上相關(guān)的一批數(shù)據(jù) 用下標(biāo)表示該數(shù)組中的各個(gè)元素 可以提高處理數(shù)據(jù)的效率 縮短和簡(jiǎn)化程序 5 2數(shù)組的定義 數(shù)組不是一種數(shù)據(jù)類(lèi)型 而是一組相同類(lèi)型的變量的集合 數(shù)組必須先聲明后使用 兩類(lèi)數(shù)組 靜態(tài) 定長(zhǎng) 數(shù)組 動(dòng)態(tài) 可變長(zhǎng) 數(shù)組1 一維數(shù)組定義一維數(shù)組的形式 Dim數(shù)組名 下界To 上界 As類(lèi)型 聲明了數(shù)組的名 維數(shù) 大小 類(lèi)型 說(shuō)明 數(shù)組名的命名規(guī)則與變量的命名相同 數(shù)組的元素個(gè)數(shù) 上界 下界 1 缺省為0 若希望下標(biāo)從1開(kāi)始 可在模塊的通用部分使用OptionBase語(yǔ)句將設(shè)為1 其使用格式是 OptionBase0 1 后面的參數(shù)只能取0或1例如 OptionBase1 將數(shù)組聲明中缺省下標(biāo)設(shè)為1和不能使用變量 必須是常量 常量可以是直接常量 符號(hào)常量 一般是整型常量 例 Dimmark 1to100 AsInteger 例 Dima 1to3 AsInteger聲明一維數(shù)組a 包含了5個(gè)整型元素a 1 a 0 a 1 a 2 a 3 如果省略As子句 則數(shù)組的類(lèi)型為變體類(lèi)型 數(shù)組中各元素在內(nèi)存占一片連續(xù)的存儲(chǔ)空間 一維數(shù)組在內(nèi)存中存放的順序是按下標(biāo)大小的順序 注意 在定義靜態(tài)數(shù)組時(shí) 每一維的元素個(gè)數(shù)必須是常數(shù) 不能是變量或表達(dá)式 如 錯(cuò)誤的聲明 下標(biāo)是變量Dimx n 或 n Inputbox 輸入n Dimx n AsSingle 在數(shù)組聲明中的下標(biāo)說(shuō)明了數(shù)組的整體 即每維的大小 而在程序其他地方出現(xiàn)的下標(biāo)表示數(shù)組中的一個(gè)元素 兩者寫(xiě)法形式相同 但意義不同 例如 Dimx 10 AsIntegerx 10 100 表示聲明了數(shù)組x 有11個(gè)數(shù)組元素 對(duì)x 10 這個(gè)數(shù)組元素賦值 5 3二維數(shù)組 定義二維數(shù)組的形式 Dim數(shù)組名 下界1To 上界1 下界2To 上界2 As類(lèi)型例如 Dima 2 3 AsSingle二維數(shù)組在內(nèi)存的存放順序是 先行后列 數(shù)組a的各元素在內(nèi)存中的存放順序是 a 0 0 a 0 1 a 0 2 a 0 3 a 1 0 a 1 1 a 1 2 a 1 3 a 2 0 a 2 1 a 2 2 a 2 3 例 DimlArray 0To3 0To4 AsLong共有4 5個(gè)元素等價(jià)于 DimlArray 3 4 AsLong 5 4動(dòng)態(tài)數(shù)組 動(dòng)態(tài)數(shù)組指在聲明數(shù)組時(shí)未給出數(shù)組的大小 省略括號(hào)中的下標(biāo) 當(dāng)要使用它時(shí) 隨時(shí)用ReDim語(yǔ)句重新指出數(shù)組大小 形式如下 ReDim數(shù)組名 下標(biāo) 下標(biāo)2 As類(lèi)型 例 PrivateSubS1 Dimx AsSingle n Inputbox 輸入n ReDimx n EndSub 說(shuō)明 Dim Static Public聲明語(yǔ)句是說(shuō)明性語(yǔ)句 可出現(xiàn)在過(guò)程內(nèi)或通用聲明段 ReDim語(yǔ)句是執(zhí)行語(yǔ)句 只能出現(xiàn)在過(guò)程內(nèi) 在過(guò)程中可多次使用ReDim來(lái)改變數(shù)組元素的個(gè)數(shù)ReDim中的下標(biāo)可以是常量 也可以是有了確定值的變量 如 n InputBox 輸入n的值 ReDimArr n 靜態(tài)數(shù)組在程序編譯時(shí)分配存儲(chǔ)單元 動(dòng)態(tài)數(shù)組在運(yùn)行時(shí)分配存儲(chǔ)單元 5 5數(shù)組的基本操作 1 數(shù)組
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南事業(yè)單位招聘筆試真題2024
- 2024年上海寶山區(qū)工作者招聘筆試真題
- 2024年北京市密云區(qū)人民陪審員選任筆試真題
- 2025年中國(guó)超耐久外墻乳膠漆行業(yè)市場(chǎng)調(diào)查、投資前景及策略咨詢(xún)報(bào)告
- 2025年中國(guó)薄壁不銹鋼水管管材行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年中國(guó)聚四氟乙烯(PTFE)筒材行業(yè)市場(chǎng)調(diào)查、投資前景及策略咨詢(xún)報(bào)告
- 2025年中國(guó)精巧盲縫紉機(jī)行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年中國(guó)磁跟蹤式液位計(jì)行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年中國(guó)甲氨喋吟行業(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 2025年中國(guó)熱軋酸洗鋼材行業(yè)市場(chǎng)調(diào)查、投資前景及策略咨詢(xún)報(bào)告
- DB61-T 5068-2023 鋼橋面改性聚氨酯混凝土鋪裝應(yīng)用技術(shù)規(guī)程
- 國(guó)內(nèi)民用船舶修理價(jià)格表(92黃本)
- 國(guó)家中長(zhǎng)期科技發(fā)展規(guī)劃綱要2021-2035
- 中學(xué)生早餐調(diào)查報(bào)告公開(kāi)課一等獎(jiǎng)?wù)n件省賽課獲獎(jiǎng)?wù)n件
- 【解析】江西省新余市2023年小升初語(yǔ)文試卷
- TACEF 077-2023 污染地塊風(fēng)險(xiǎn)管控與修復(fù)工程職業(yè)健康防護(hù)指南
- 2023-2024學(xué)年四川省阿壩州小學(xué)語(yǔ)文四年級(jí)期末深度自測(cè)試卷詳細(xì)參考答案解析
- 高等量子力學(xué)-課件
- 上消化道出血急救和護(hù)理演示文稿
- 公路箱梁水紋產(chǎn)生及防治
- 通許縣供水管網(wǎng)工程環(huán)境影響報(bào)告
評(píng)論
0/150
提交評(píng)論