![vba常用代碼大全.doc_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/11/9fd34582-f7af-4cee-a469-3dafdeeae524/9fd34582-f7af-4cee-a469-3dafdeeae5241.gif)
![vba常用代碼大全.doc_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/11/9fd34582-f7af-4cee-a469-3dafdeeae524/9fd34582-f7af-4cee-a469-3dafdeeae5242.gif)
![vba常用代碼大全.doc_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/11/9fd34582-f7af-4cee-a469-3dafdeeae524/9fd34582-f7af-4cee-a469-3dafdeeae5243.gif)
![vba常用代碼大全.doc_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/11/9fd34582-f7af-4cee-a469-3dafdeeae524/9fd34582-f7af-4cee-a469-3dafdeeae5244.gif)
![vba常用代碼大全.doc_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/11/9fd34582-f7af-4cee-a469-3dafdeeae524/9fd34582-f7af-4cee-a469-3dafdeeae5245.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、前言我們平時在工作表單元格的公式中常常使用函數(shù),Excel自帶的常用的函數(shù)多達(dá)300多個,功能強大,豐富多彩,但是在VBA中不能直接應(yīng)用,必須在函數(shù)名前面加上對象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。而能在VBA中直接應(yīng)用的函數(shù)也有幾十個,下面將逐一詳細(xì)介紹常用的40個VBA函數(shù),以供大家學(xué)習(xí)參考。第1.1例ASC函數(shù)一、題目:要求編寫一段代碼,運行后得到字符串”Excel”的首字母和”e”的ASCII值。二、代碼:Sub示例_1_01()Dim myNum1%, myNum2%myNum1 = Asc(Excel)返回69
2、myNum2 = Asc(e)返回101a1 = myNum1= : b1 = myNum1a2 = myNum2= : b2 = myNum2End Sub三、代碼詳解1、Sub示例_1_01():宏程序的開始語句。2、Dim myNum1%, myNum2%:變量myNum1和myNum2聲明為整型變量。也可以寫為Dim myNum1 As Integer。Integer變量存儲為16位(2個字節(jié))的數(shù)值形式,其范圍為-32,768到32,767之間。Integer的類型聲明字符是百分比符號(%)。3、myNum1 = Asc(Excel):把Asc函數(shù)的值賦給變量myNum1。Asc函數(shù)
3、返回一個Integer,代表字符串中首字母的字符的ASCII代碼。語法Asc(string)必要的string(字符串)參數(shù)可以是任何有效的字符串表達(dá)式。如果string中沒有包含任何字符,則會產(chǎn)生運行時錯誤。4、myNum2 = Asc(e):把Asc函數(shù)的值賦給變量myNum2。這里返回小寫字母e的ASCII代碼101。5、a1 = myNum1= : b1 = myNum1:把字符串“myNum1=“賦給A1單元格,把變量myNum1的值賦給B1單元格。6、a2 = myNum2= : b2 = myNum2:把字符串“myNum2=“賦給A2單元格,把變量myNum2的值賦給B2單元格
4、。7、End Sub:程序的結(jié)束語句,和“Sub示例_1_01()”相對應(yīng)。第1.2例Chr函數(shù)一、題目:要求編寫一段代碼,運用Chr函數(shù)將ASCII值轉(zhuǎn)換為對應(yīng)的字符。二、代碼:Sub示例_1_02()Dim myChar1$, myChar2$myChar1 = Chr(69)返回E。myChar2 = Chr(101)返回e。a1 = myChar1= : b1 = myChar1a2 = myChar2= : b2 = myChar2End Sub三、代碼詳解1、Sub示例_1_02():宏程序的開始語句。2、Dim myChar1$, myChar2$:變量myChar1和myCha
5、r2聲明為字符串變量。也可以寫為Dim myChar1 As String。String之字符碼的范圍是0到255。字符集的前128個字符(0到127)對應(yīng)于標(biāo)準(zhǔn)的U.S.鍵盤上的字符與符號。這前128個字符與ASCII字符集中所定義的相同。后128個字符(128到255)則代表特殊字符,例如國際字符,重音符號,貨幣符號及分?jǐn)?shù)。String的類型聲明字符為美元號($)。3、myChar1 = Chr(69):把Chr(69)的值賦給變量myChar1。這里返回大寫字母E。Chr函數(shù)根據(jù)字符代碼返回一個字符。語法Chr(charcode)必要的charcode(字符代碼)參數(shù)是用來識別某字符的。
6、4、myChar2 = Chr(101):把Chr函數(shù)的值賦給變量myChar2。這里返回小寫字母e。5、a1 = myChar1= : b1 = myChar1:把字符串“myChar1=“賦給A1單元格,把變量myChar1的值賦給B1單元格。6、a2 = myChar2= : b2 = myChar2:把字符串“myChar2=“賦給A2單元格,把變量myChar2的值賦給B2單元格。7、End Sub:程序的結(jié)束語句,和“Sub示例_1_02()”相對應(yīng)。第1.3例Choose函數(shù)一、題目:要求編寫一段代碼,運用Choose函數(shù)根據(jù)指定數(shù)字選擇對應(yīng)的字符串。二、代碼:Sub示例_1_0
7、3()Dim Num%Num=2MsgBoxChoose(Num, 一月, 二月, 三月)End Sub三、代碼詳解1、Sub示例_1_03():宏程序的開始語句。宏名為示例_1_03。2、Dim Num%:變量Num聲明為整型變量。3、Num=2:把2賦給變量Num。4、MsgBoxChoose(Num, 一月, 二月, 三月):Choose函數(shù)從參數(shù)列表中選擇并返回一個值。語法Choose(index, choice-1, choice-2, . , choice-n)Choose會根據(jù)index的值來返回選擇項列表中的某個值。如果index是1,則Choose會返回列表中的第1個選擇項。
8、如果index是2,則會返回列表中的第2個選擇項,以此類推。Index是必要參數(shù),數(shù)值表達(dá)式或字段,它的運算結(jié)果是一個數(shù)值,且界于1和可選擇的項目數(shù)之間。當(dāng)index小于1或大于列出的選擇項數(shù)目時,Choose函數(shù)返回Null。如果index不是整數(shù),則會先四舍五入為與其最接近的整數(shù)。第1.4例Cos函數(shù)一、題目:要求編寫一段代碼,運用Cos函數(shù)根據(jù)指定角度的余弦計算其正割的值。二、代碼:Sub示例_1_04()Dim jiaodu, zengejiaodu = 1.3zenge = 1 /Cos(jiaodu)MsgBox“角度為”& jiaodu &“的正割的值”& zengeEnd Su
9、b三、代碼詳解1、Sub示例_1_04():宏程序的開始語句。宏名為示例_1_04。2、Dim jiaodu, zenge:兩個變量都被指定為可變型數(shù)據(jù)類型。當(dāng)聲明常數(shù)、變量或參數(shù)時,若無指定數(shù)據(jù)類型則會自動的指定成Variant(可變型)數(shù)據(jù)類型。聲明成Variant數(shù)據(jù)類型的變量可以為字符串、日期、時間、Boolean或數(shù)值。3、jiaodu = 1.3:把以“弧度”為單位的角度1.3賦給變量jiaodu。4、zenge = 1 / Cos(jiaodu):利用1/余弦算得正割(sec())的值,賦給變量zenge。Cos函數(shù)返回一個角的余弦值。其參數(shù)是表示一個以弧度為單位的角。5、Msg
10、Box“角度為”& jiaodu &“的正割的值”& zenge:利用MsgBox函數(shù)顯示算得的正割(sec())的值。第1.5例Date函數(shù)一、題目:要求編寫一段代碼,運用Date函數(shù)顯示系統(tǒng)日期的值。二、代碼:Sub示例_1_05()Dim myDatemyDate = DateMsgBox“系統(tǒng)日期為”& myDateEnd Sub三、代碼詳解1、Sub示例_1_05():宏程序的開始語句。宏名為示例_1_05。2、Dim myDate:變量myDate被指定為可變型數(shù)據(jù)類型。3、myDate = Date:把系統(tǒng)日期的值賦給變量myDate。Date函數(shù)返回系統(tǒng)當(dāng)前的日期。4、MsgB
11、ox“系統(tǒng)日期為”& myDate:利用MsgBox函數(shù)顯示系統(tǒng)日期的值。第1.6例DateAdd函數(shù)一、題目:要求編寫一段代碼,運用DateAdd函數(shù)顯示返回一定間隔后的日期。二、代碼:Sub示例_1_06()Dim dyrq As DateDim jglx As StringDim n As IntegerDim Msgjglx = mdyrq = InputBox(請輸入一個日期)n = InputBox(輸入增加月的數(shù)目:)Msg = 新日期: & DateAdd(jglx, n, dyrq)MsgBox MsgEnd Sub三、代碼詳解1、Sub示例_1_06():宏程序的開始語句。
12、宏名為示例_1_06。2、Dim dyrq As Date:變量dyrq聲明為日期對象型數(shù)據(jù)類型。其余幾個變量分別是字符串型、整型和可變型變量。3、jglx = m:用字符m來指定以“月份”作為間隔。4、dyrq = InputBox(請輸入一個日期):用InputBox函數(shù)來讓用戶輸入一個日期,并把用戶輸入的日期賦給變量dyrq。5、n = InputBox(輸入增加月的數(shù)目:):用InputBox函數(shù)來讓用戶輸入間隔月的數(shù)目,并把用戶輸入的值賦給變量n。6、Msg = 新日期: & DateAdd(jglx, n, dyrq):用DateAdd函數(shù)計算得到的新的日期和字符串“新日期:”連接
13、起來賦給變量Msg。DateAdd函數(shù)返回一個日期,這一日期加上了一個時間間隔。語法DateAdd(interval, number, date)DateAdd函數(shù)語法中有下列命名參數(shù):interval必要。字符串表達(dá)式,是所要加上去的時間間隔。它具有好多設(shè)定值,比如”m”為月;”d”為日;”yyyy”為年等等。number必要。數(shù)值表達(dá)式,是要加上的時間間隔的數(shù)目。其數(shù)值可以為正數(shù)(得到未來的日期),也可以為負(fù)數(shù)(得到過去的日期)。date必要。表示日期的文字。7、MsgBoxMsg:利用MsgBox函數(shù)顯示Msg的值。第1.7例DateDiff函數(shù)一、題目:要求編寫一段代碼,運用DateD
14、iff函數(shù)返回某個指定日期距離今天的天數(shù)。二、代碼:Sub示例_1_07()Dim zdrq As DateDim Msgzdrq = InputBox(請輸入一個日期:)Msg = 離開今天的天數(shù): & DateDiff(d, Now, zdrq)MsgBox MsgEnd Sub三、代碼詳解1、Sub示例_1_07():宏程序的開始語句。宏名為示例_1_07。2、Dim zdrq As Date:變量zdrq聲明為日期對象型數(shù)據(jù)類型。3、zdrq = InputBox(請輸入一個日期):用InputBox函數(shù)來讓用戶輸入一個日期,并把用戶輸入的日期賦給變量zdrq。4、Msg = 離開今天
15、的天數(shù): & DateDiff(d, Now, zdrq):用DateDiff函數(shù)計算得到的結(jié)果和字符串“離開今天的天數(shù):”連接起來賦給變量Msg。5、MsgBoxMsg:利用MsgBox函數(shù)顯示Msg的值。DateDiff函數(shù)可用來決定兩個日期之間所指定的時間間隔數(shù)目。例如,可以使用DateDiff來計算兩個日期之間相隔幾日,或計算從今天起到年底還有多少個星期。DateDiff(interval, date1, date2, firstdayofweek, firstweekofyear)DateDiff函數(shù)語法中有下列命名參數(shù):interval必要。字符串表達(dá)式,是所要加上去的時間間隔。它
16、具有好多設(shè)定值,與DateAdd函數(shù)相同;此例中的d,表示天數(shù);Date1,date2必要;計算中要用到的兩個日期。Firstdayofweek可選。指定一個星期的第一天的常數(shù)。如果未予指定,則以星期日為第一天。firstweekofyear可選。指定一年的第一周的常數(shù)。如果未予指定,則以包含1月1日的星期為第一周。第1.8例DatePart函數(shù)一、題目:要求編寫一段代碼,運用DatePart函數(shù)返回某個指定日期是在一年的哪一個季度。二、代碼:Sub示例_1_08()Dim zdrq As DateDim Msgzdrq = InputBox(請輸入一個日期:)Msg = 季度: & Date
17、Part(q, zdrq)MsgBox MsgEnd Sub三、代碼詳解1、Sub示例_1_08():宏程序的開始語句。宏名為示例_1_08。2、Dim zdrq As Date:變量zdrq聲明為日期對象型數(shù)據(jù)類型。3、zdrq = InputBox(請輸入一個日期):用InputBox函數(shù)來讓用戶輸入一個日期,并把用戶輸入的日期賦給變量zdrq。4、Msg = 季度: & DatePart(q, zdrq):用DatePart函數(shù)計算得到的結(jié)果和字符串“季度:”連接起來賦給變量Msg。5、MsgBoxMsg:利用MsgBox函數(shù)顯示Msg的值。DatePart函數(shù)DatePart(inte
18、rval, date, , firstdayofweek, firstweekofyear)語法中有下列命名參數(shù):interval必要。字符串表達(dá)式,是所要加上去的時間間隔。它具有好多設(shè)定值,與DateAdd函數(shù)相同;此例中的q,表示季度;Date,必要;計算中要用到的兩個日期。Firstdayofweek可選。指定一個星期的第一天的常數(shù)。如果未予指定,則以星期日為第一天。firstweekofyear可選。指定一年的第一周的常數(shù)。如果未予指定,則以包含1月1日的星期為第一周。第1.9例DateSerial函數(shù)一、題目:要求編寫一段代碼,運用DateSerial函數(shù)返回指定日期的Date類型。
19、二、代碼:Sub示例_1_09()Dim zdrqzdrq = DateSerial(2008, 8, 8)MsgBox zdrqEnd Sub三、代碼詳解1、Sub示例_1_09():宏程序的開始語句。宏名為示例_1_09。2、Dim zdrq:變量zdrq聲明為可變型數(shù)據(jù)類型。3、zdrq = DateSerial(2008, 8, 8):DateSerial函數(shù)轉(zhuǎn)換所得的結(jié)果賦給變量zdrq。DateSerial函數(shù)返回指定日期年月日的日期格式。語法DateSerial(year, month, day)DateSerial函數(shù)語法有下列的命名參數(shù):year必要;整型。從100到9999
20、間的整數(shù),或一數(shù)值表達(dá)式。month必要;整型。任何數(shù)值表達(dá)式。day必要;整型。任何數(shù)值表達(dá)式。4、MsgBoxzdrq:利用MsgBox函數(shù)顯示zdrq的值。第1.10例DateValue函數(shù)一、題目:要求編寫一段代碼,運用DateValue函數(shù)返回指定日期的Date類型。二、代碼:Sub示例_1_010()Dim zdrqzdrq = DateValue(August 8, 2008)MsgBox zdrqEnd Sub三、代碼詳解1、Sub示例_1_010():宏程序的開始語句。宏名為示例_1_010。2、Dim zdrq:變量zdrq聲明為可變型數(shù)據(jù)類型。3、zdrq = DateV
21、alue(August 8, 2008):DateSerial函數(shù)轉(zhuǎn)換所得的結(jié)果賦給變量zdrq。4、MsgBoxzdrq:利用MsgBox函數(shù)顯示zdrq的值。DateValue函數(shù)將字符串轉(zhuǎn)換為日期格式。語法DateValue (date)DateValue函數(shù)的參數(shù):date必要;通常是字符串表達(dá)式,表示從100年1月1日到9999年12月31日之間的一個日期。但是,date也可以是任何表達(dá)式,其所代表的日期、時間在上述范圍內(nèi)。第1.11例Day函數(shù)一、題目:要求編寫一段代碼,運用Day函數(shù)返回指定日期的日。二、代碼:Sub示例_1_11()Dim zdrqzdrq = #2008-12
22、-8#MsgBoxzdrq & 這天的日為: & Day(zdrq)End Sub三、代碼詳解1、Sub示例_1_11():宏程序的開始語句。宏名為示例_1_11。2、Dim zdrq:變量zdrq聲明為可變型數(shù)據(jù)類型。3、zdrq = #2008- 8- 8#:把日期2008-8-8賦給變量zdrq。4、MsgBoxzdrq & 這天的日為: & Day(zdrq):利用MsgBox函數(shù)顯示Day(zdrq)的值。Day函數(shù)返回一個其值為1到31之間的整數(shù),表示一個月中的某一日。語法Day (date)Day函數(shù)的參數(shù):date必要的,可以是任何能夠表示日期的Variant、數(shù)值表達(dá)式、字符
23、串表達(dá)式或它們的組合。第1.12例Dir函數(shù)一、題目:要求編寫一段代碼,運用Dir函數(shù)返回一個文件夾的文件列表。二、代碼:Sub示例_1_12()Dim wjmwjm = Dir(C:WINDOWSWIN.ini)MsgBox wjmwjm = Dir(C:WINDOWS*.ini)wjm = DirEnd Sub三、代碼詳解1、Sub示例_1_12():宏程序的開始語句。宏名為示例_1_12。2、Dim wjm:變量wjm聲明為可變型數(shù)據(jù)類型。3、wjm = Dir(C:WINDOWSWIN.ini):如果該文件存在則返回“WIN.INI”(在C:Windows文件夾中),把返回的文件名賦給
24、變量wjm。如果該文件不存在則wjm=”。4、wjm = Dir(C:WINDOWS*.ini):返回帶指定擴(kuò)展名的文件名。如果超過一個*.ini文件存在,函數(shù)將返回按條件第一個找到的文件名。5、wjm = Dir:若第二次調(diào)用Dir函數(shù),但不帶任何參數(shù),則函數(shù)將返回同一目錄下的下一個*.ini文件。Dir函數(shù)返回一個字符串String,用以表示一個文件名、目錄名或文件夾名稱,它必須與指定的模式或文件屬性、或磁盤卷標(biāo)相匹配。Dir(pathname, attributes)Dir函數(shù)的語法具有以下幾個部分:pathname可選參數(shù)。用來指定文件名的字符串表達(dá)式,可能包含目錄或文件夾、以及驅(qū)動器
25、。如果沒有找到pathname,則會返回零長度字符串()。attributes可選參數(shù)。常數(shù)或數(shù)值表達(dá)式,其總和用來指定文件屬性。如果省略,則會返回匹配pathname但不包含屬性的文件。第1.13例Fix函數(shù)一、題目:要求編寫一段代碼,運用Fix函數(shù)返回某數(shù)值的整數(shù)部分。二、代碼:Sub示例_1_13()MsgBox“99.8的整數(shù)部分是:”& Fix(99.8)MsgBox“99.8的整數(shù)部分是:”& Fix(-99.8)End Sub三、代碼詳解1、Sub示例_1_13():宏程序的開始語句。宏名為示例_1_13。2、MsgBox“99.8的整數(shù)部分是:”& Fix(99.8):利用Ms
26、gBox函數(shù)顯示Fix(99.8)的值。3、MsgBox“-99.8的整數(shù)部分是:”& Fix(-99.8):利用MsgBox函數(shù)顯示Fix(-99.8)的值。Fix函數(shù)返回參數(shù)的整數(shù)部分。語法Fix(number)number必要的是任何有效的數(shù)值表達(dá)式。Int及Fix函數(shù)在返回某數(shù)值的整數(shù)部分時有何不同。當(dāng)參數(shù)為負(fù)數(shù)時,Int函數(shù)返回小于或等于該參數(shù)之最大整數(shù),而Fix函數(shù)則返回大于或等于該參數(shù)之最小整數(shù)。第1.14例Format函數(shù)一、題目:要求編寫一段代碼,運用Format函數(shù)對指定字符串返回指定格式的輸出。二、代碼:Sub示例_1_14()Dim sj, rqsj = “19:08:
27、43”rq = “2008-8-8”MsgBox sj &“的格式設(shè)為hh:mm:ss AMPM:”& Format(sj, hh:mm:ss AMPM)返回07:08:43下午。MsgBox rq &“的格式設(shè)為dddd, mmm d yyyy:”& Format(rq, dddd, mmm d yyyy)End Sub三、代碼詳解1、Sub示例_1_14():宏程序的開始語句。宏名為示例_1_14。2、Dim sj,rq:變量sj,rq聲明為可變型數(shù)據(jù)類型。3、sj =“19:08:43”:把字符串”19:08:43”賦給變量sj。4、rq =“2008-8-8”:把字符串”2008-8-
28、8”賦給變量rq。5、MsgBox sj &“的格式設(shè)為hh:mm:ss AMPM:”& Format(sj, hh:mm:ss AMPM):利用MsgBox函數(shù)顯示Format函數(shù)的值。返回07:08:43下午。6、MsgBox rq &“的格式設(shè)為dddd, mmm d yyyy:”& Format(rq, dddd, mmm d yyyy):利用MsgBox函數(shù)顯示Format函數(shù)的值。代碼執(zhí)行后如圖5-14所示。Format函數(shù)根據(jù)有效的命名表達(dá)式來對指定的表達(dá)式進(jìn)行格式化。Format(expression, format, firstdayofweek, firstweekofye
29、ar)Format函數(shù)的語法具有下面幾個部分:expression必要參數(shù)。任何有效的表達(dá)式。format可選參數(shù)。有效的命名表達(dá)式或用戶自定義格式表達(dá)式。firstdayofweek可選參數(shù)。常數(shù),表示一星期的第一天。firstweekofyear可選參數(shù)。常數(shù),表示一年的第一周。第1.15例Hour函數(shù)一、題目:要求編寫一段代碼,運用Hour函數(shù)對指定字符串返回小時數(shù)。二、代碼:Sub示例_1_15()Dim sjsj = 3:45:20 PM指定一時間字符串。MsgBox sj & 的小時是: & Hour(sj)End Sub三、代碼詳解1、Sub示例_1_15():宏程序的開始語句。
30、宏名為示例_1_15。2、Dim sj:變量sj聲明為可變型數(shù)據(jù)類型。3、sj =“3:45:20 PM”:把字符串”3:45:20 PM”賦給變量sj。4、MsgBox sj &的小時是: & Hour(sj):利用MsgBox函數(shù)顯示Hour函數(shù)的值。代碼執(zhí)行后如圖5-15所示。Hour函數(shù)返回一個其值為0到23之間的整數(shù),表示一天之中的某一鐘點。語法Hour(time)Time必要的參數(shù),可以是任何能夠表示時刻的數(shù)值表達(dá)式、字符串表達(dá)式或它們的組合。第1.16例IIF函數(shù)一、題目:要求編寫一段代碼,運用IIF函數(shù)根據(jù)判斷條件返回結(jié)果。二、代碼:Sub示例_1_16()Dim Cheshi
31、 As String, dx As Integerdx = 560Cheshi = IIF(dx 1000, 大, 小)MsgBox dx & 比1000要 & Cheshi & & Abs(1000 - dx)End Sub三、代碼詳解1、Sub示例_1_16():宏程序的開始語句。宏名為示例_1_16。2、Dim Cheshi As String, dx As Integer:變量Cheshi聲明為字符串?dāng)?shù)據(jù)類型,dx聲明為整型。3、dx= 560:把數(shù)字560賦給變量dx。4、Cheshi = IIF(dx 1000, 大, 小):根據(jù)變量dx是否大于1000的條件來判斷,并且把返回的結(jié)
32、果賦給變量Cheshi。5、MsgBoxdx & 比1000要 & Cheshi & & Abs(1000 - dx):利用MsgBox函數(shù)顯示最后的值。其中Abs函數(shù)是取表達(dá)式的絕對值函數(shù)。IIF函數(shù)根據(jù)表達(dá)式的值,來返回兩部分中的其中一個。IIF(expr, truepart, falsepart)IIF函數(shù)的語法含有下面這些命名參數(shù):expr必要參數(shù)。用來判斷真?zhèn)蔚谋磉_(dá)式。truepart必要參數(shù)。如果expr為True,則返回這部分的值或表達(dá)式。falsepart必要參數(shù)。如果expr為False,則返回這部分的值或表達(dá)式。第1.17例InputBox函數(shù)一、題目:要求編寫一段代碼,運
33、用InputBox函數(shù),用戶輸入一定范圍的數(shù)值并返回結(jié)果。二、代碼:Sub Sub示例_1_17()Dim Msg$, bt$, Default$, MyValue,aaMsg = 輸入一個10到25之間的數(shù)值:bt = InputBox函數(shù)示例Default = 10設(shè)置缺省值。100:MyValue = InputBox(Msg,bt, Default)If MyValue 25 Thenaa = MsgBox(輸入數(shù)值超出范圍,請重新輸入或者退出。, 1)If aa vbOK Then Exit SubGoTo 100ElseMsgBox 你輸入的是 & MyValueEnd IfEnd
34、 Sub三、代碼詳解1、Sub示例_1_17():宏程序的開始語句。宏名為示例_1_17。2、Dim Msg$, bt$, Default, MyValue,aa:變量Msg、Default和bt聲明為字符串?dāng)?shù)據(jù)類型,其它的沒有顯式聲明,都為可變型數(shù)據(jù)類型。3、Msg = 輸入一個10到25之間的數(shù)值:設(shè)置提示信息,把字符串賦給變量Msg。4、bt = InputBox函數(shù)示例:設(shè)置標(biāo)題,把字符串賦給變量bt。5、Default = 10:設(shè)置缺省值,把字符串賦給變量Default。6、MyValue = InputBox(Msg,bt, Default):通過InputBox函數(shù)顯示信息、標(biāo)
35、題及缺省值,把函數(shù)返回值賦給變量MyValue。7、If MyValue 25 Then:如果InputBox函數(shù)返回的數(shù)值小于10或者大于25,那么執(zhí)行下面的語句。8、aa = MsgBox(輸入數(shù)值超出范圍,請重新輸入或者退出。, 1):如果InputBox函數(shù)返回的數(shù)值超出了范圍,顯示一個消息框,消息框里面的第2個參數(shù)是1,表示消息框上有兩個按鈕:“確定”和“取消”按鈕。并把消息框返回的結(jié)果賦給變量aa。9、If aa vbOK Then Exit Sub:如果用戶按了消息框上的“取消”按鈕,就退出本程序。10、GoTo 100:如果用戶按了消息框上的“確定”按鈕,就轉(zhuǎn)而從行號100開始
36、執(zhí)行代碼。11、MsgBox 你輸入的是 & MyValue:如果用戶輸入了符合要求的數(shù)值,按了回車鍵或者“確定”按鈕,消息框顯示用戶輸入的值。InputBox函數(shù)在一對話框來中顯示提示,等待用戶輸入正文或按下按鈕,并返回包含文本框內(nèi)容的字符串。語法InputBox(prompt, title , default , xpos , ypos , helpfile, context)InputBox函數(shù)的語法具有以下幾個命名參數(shù):Prompt必需的。作為對話框消息出現(xiàn)的字符串表達(dá)式。Prompt的最大長度大約是1024個字符,由所用字符的寬度決定。如果Prompt包含多個行,則可在各行之間用回車
37、符(Chr(13)、換行符(Chr(10)或回車換行符的組合(Chr(13) & Chr(10)來分隔。Title可選的。顯示對話框標(biāo)題欄中的字符串表達(dá)式。如果省略Title,則把應(yīng)用程序名放入標(biāo)題欄中。Default可選的。顯示文本框中的字符串表達(dá)式,在沒有其它輸入時作為缺省值。如果省略Default,則文本框為空。其它參數(shù)省略,請參見Excel幫助文件。第1.18例Instr函數(shù)一、題目:要求編寫一段代碼,運用Instr函數(shù),在一字符串中查找另一字符串并返回結(jié)果。二、代碼:Sub示例_1_18()Dim bssString, yczChar, wzbssString =ABpAApCDPB
38、BPyczChar = PMsgBox bssString = ABpAApCDPBBP & Chr(10) & _yczChar= P時: & Chr(10) & Chr(10) & _InStr(4, bssString, yczChar, 1)返回值為 & _InStr(4, bssString, yczChar, 1)wz = Instr(1, bssString, yczChar, 0)wz = Instr(bssString,yczChar)返回9。wz = Instr(1, bssString, W)返回0。End Sub三、代碼詳解1、Sub示例_1_18():宏程序的開始語句
39、。宏名為示例_1_18。2、Dim bssString, yczChar, wz:變量bssString、yczChar和ws聲明為可變型變量。3、bssString =ABpAApCDXPBBP:把被搜索的字符串賦給變量bssString。4、yczChar = P:把要查找的字符P賦給變量yczChar。5、MsgBox bssString = ABpAApCDPBBP & Chr(10) & _yczChar= P時: & Chr(10) & Chr(10) & _InStr(4, bssString, yczChar, 1)返回值為 & _InStr(4, bssString, ycz
40、Char, 1):用消息框顯示從第四個字符開始,以文本比較的方式找字符P,返回值為6(小寫p的位置)。小寫p和大寫P在文本比較下是一樣的,也就是當(dāng)函數(shù)的最后一個參數(shù)為1時,查找不分大小寫。把要查找的字符P的位置賦給變量yczChar。式中Chr(10)是換行符。6、wz = Instr(1, bssString, yczChar, 0):從第一個字符開始,以二進(jìn)制比較的方式查找,返回值為9(大寫P的位置)。小寫p和大寫P在二進(jìn)制比較下是不一樣的,也就是當(dāng)函數(shù)的最后一個參數(shù)為0時,查找分大小寫。把查找到的字符P的位置賦給變量wz。7、wz = Instr(bssString, yczChar):
41、上一句也可寫成這樣的,因為缺省的比對方式為二進(jìn)制比較(最后一個參數(shù)可省略)。第一個參數(shù)省略默認(rèn)從第一個字符開始查找。返回值為9。8、wz = Instr(1,bssString,”W”):在被搜索的字符串中查找字符W,由于沒找到返回值為0。InStr函數(shù)返回Variant (Long),指定一字符串在另一字符串中最先出現(xiàn)的位置。語法InStr(start, string1, string2, compare)InStr函數(shù)的語法具有下面的參數(shù):start可選參數(shù)。為數(shù)值表達(dá)式,設(shè)置每次搜索的起點。如果省略,將從第一個字符的位置開始。如果指定了compare參數(shù),則一定要有start參數(shù)。str
42、ing1必要參數(shù)。接受搜索的字符串表達(dá)式。string2必要參數(shù)。被搜索的字符串表達(dá)式。Compare可選參數(shù)。指定字符串比較。如果省略compare,Option Compare的設(shè)置將決定比較的類型。compare參數(shù)設(shè)置為:常數(shù)值描述vbUseCompareOption-1使用Option Compare語句設(shè)置執(zhí)行一個比較。vbBinaryCompare0執(zhí)行一個二進(jìn)制比較。vbTextCompare1執(zhí)行一個按照原文的比較。vbDatabaseCompare2僅適用于Microsoft Access,執(zhí)行一個基于數(shù)據(jù)庫中信息的比較。第1.19例InstrRev函數(shù)一、題目:要求編寫一
43、段代碼,運用InstrRev函數(shù),返回一個字符串在另一個字符串中出現(xiàn)的位置,從字符串的末尾算起。二、代碼:Sub示例_1_19()Dim bssString, yczChar, wzbssString =ABpAApCDPBBPyczChar = pws = InstrRev(bssString, yczChar, 4,1)MsgBox wsEnd Sub三、代碼詳解1、Sub示例_1_19():宏程序的開始語句。宏名為示例_1_19。2、Dim bssString, yczChar, wz:變量bssString、yczChar和ws聲明為可變型變量。3、bssString =ABpAApC
44、DXPBBP:把被搜索的字符串賦給變量bssString。4、yczChar = p:把要查找的字符P賦給變量yczChar。5、wz = InstrRev( bssString, yczChar,4,1):從第4個字符開始,按原文比較的方式從末尾往前查找字符p,返回值為3。InStrRev函數(shù)返回一個字符串在另一個字符串中出現(xiàn)的位置,從字符串的末尾算起。語法InstrRev(stringcheck, stringmatch, start, compare)InstrRev函數(shù)語法有如下命名參數(shù):stringcheck必需的。要執(zhí)行搜索的字符串表達(dá)式。stringmatch必需的。要搜索的字符
45、串表達(dá)式。start可選的。數(shù)值表達(dá)式,設(shè)置每次搜索的開始位置。如果忽略,則表示從字符串末尾位置開始搜索。compare可選的。數(shù)字值,指出在判斷子字符串時所使用的比較方法。如果忽略,則執(zhí)行二進(jìn)制比較。compare參數(shù)值如下:常數(shù)值描述vbUseCompareOption1用Option Compare語句的設(shè)置值來執(zhí)行比較。vbBinaryCompare0執(zhí)行二進(jìn)制比較。區(qū)分大小寫。vbTextCompare1執(zhí)行文字比較。不區(qū)分大小寫。vbDatabaseCompare2只用于Microsoft Access?;谀臄?shù)據(jù)庫信息執(zhí)行比較。6、MsgBox ws:用消息框顯示查找返回的值3
46、。第1.20例IsArray函數(shù)一、題目:要求編寫一段代碼,運用IsArray函數(shù),返回一個變量是否為一個數(shù)組。二、代碼:Sub示例_1_20()Dim Arr1(1 To 8,1 to 3) As Integer, Arr2Arr2 = Array(1, 2, 3,4,5)MsgBox“Arr1是否為數(shù)組:”& IsArray(Arr1)返回True。MsgBox“Arr2是否為數(shù)組:”& IsArray(Arr2)返回True。End Sub三、代碼詳解1、Sub示例_1_20():宏程序的開始語句。宏名為示例_1_20。2、Dim Arr1(1 To 8,1 to 3) As Integ
47、er, Arr2:聲明變量Arr1為整型數(shù)組、Arr2為可變型變量。3、Arr2 = Array(1, 2, 3,4,5):用Array函數(shù)賦值給Arr2。Array函數(shù)返回一個包含數(shù)組的Variant。語法Array(arglist)所需的arglist參數(shù)是一個用逗號隔開的值表,這些值用于給Variant所包含的數(shù)組的各元素賦值。如果不提供參數(shù),則創(chuàng)建一個長度為0的數(shù)組。使用Array函數(shù)創(chuàng)建的數(shù)組的下界受Option Base語句指定的下界的決定,默認(rèn)為0。IsArray函數(shù)返回Boolean值,指出變量是否為一個數(shù)組。語法IsArray(varname)必要的varname參數(shù)是一個指定變量的標(biāo)識符。如果變量是數(shù)組,則IsArray返回True;否則返回False。對于包含數(shù)組的variant表達(dá)式來說,IsArray尤為有用。4、MsgBox“Arr1是否為數(shù)組:”& IsArray(Arr1):用消息框顯示Arr1是否為數(shù)組。第1.21例IsNumeric函數(shù)一、題目:要求編寫一段代碼,運用IsNumeric函數(shù),返回一個變量是否為一個數(shù)值。二、代碼:Sub
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)創(chuàng)新與養(yǎng)老行業(yè)的融合
- 個人固定資產(chǎn)借款合同范文
- 土方運輸承包合同范本
- 農(nóng)產(chǎn)品經(jīng)銷合同書
- 牛羊肉購銷合同協(xié)議書模板范本
- 凈水器購銷合同模板
- 合同范本產(chǎn)品銷售合同
- 合同違約責(zé)任條款
- 煤礦井下飛行巡檢機器人的研究與應(yīng)用展望
- 安裝合同范本 標(biāo)準(zhǔn)版
- 《財務(wù)管理學(xué)(第10版)》課件 第5、6章 長期籌資方式、資本結(jié)構(gòu)決策
- 房屋永久居住權(quán)合同模板
- 醫(yī)院納入定點后使用醫(yī)療保障基金的預(yù)測性分析報告
- 初中英語不規(guī)則動詞表(譯林版-中英)
- 2024年3月四川省公務(wù)員考試面試題及參考答案
- 新生兒黃疸早期識別課件
- 醫(yī)藥營銷團(tuán)隊建設(shè)與管理
- 二年級數(shù)學(xué)上冊口算題100道(全冊完整)
- 冷軋工程專業(yè)詞匯匯編注音版
- 小升初幼升小擇校畢業(yè)升學(xué)兒童簡歷
- 第一單元(金融知識進(jìn)課堂)課件
評論
0/150
提交評論