<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來(lái),開(kāi)創(chuàng)未來(lái)!
    隨筆 - 160, 文章 - 0, 評(píng)論 - 40, 引用 - 0
    數(shù)據(jù)加載中……

    [改編]VB基本語(yǔ)法學(xué)習(xí)

    1 常量與變量

    1.1 VB的數(shù)據(jù)類(lèi)型

    數(shù)據(jù)類(lèi)型是數(shù)據(jù)的表示和存儲(chǔ)形式。VB定義的基本數(shù)據(jù)類(lèi)型如表5-1所示。

    5-1  VB的基本數(shù)據(jù)類(lèi)型

    數(shù)據(jù)類(lèi)型

    類(lèi)型描述

    類(lèi)型說(shuō)明后綴

    數(shù)據(jù)范圍

    所占字節(jié)數(shù)

    Integer

    整型

    %

    -32768~32767

    2

    Long

    長(zhǎng)整型

    &

    -2147483648~2147483647

    4

    Single

    單精度浮點(diǎn)型

    !

    -3.402823E38~-1.401298E-45

    1.401298E-45~3.402823E38

    4

    Double

    雙精度浮點(diǎn)型

    #

    -1.79769313486232E308~-4.9406564584124E324

    4.9406564584124E324~1.79769313486232E308

    8

    Currency

    貨幣型

    @

     

    8

    String

    字符串型

    $

     

    每字符占一字節(jié)

    Byte

    字節(jié)型

     

    0~255

    1

    Boolean

    布爾數(shù)據(jù)型

     

    -1True)、(False

     

    Date

    日期型

     

     

     

    Object

    對(duì)象型

     

     

    4

    Variant

    變體

    為上述任一種

     

     

    Integer(整型)、Long(長(zhǎng)整型)、Single(單精度浮點(diǎn)型)、Double(雙精度長(zhǎng)整型)及Currency(貨幣型)均為Numeric數(shù)據(jù)類(lèi)型。其中整型是16位的整數(shù),長(zhǎng)整型是32位的整數(shù)。單精度及雙精度浮點(diǎn)型就表示實(shí)數(shù),常被用于數(shù)量較大的數(shù)字。Currency數(shù)據(jù)類(lèi)型支持小數(shù)點(diǎn)右面15位,是定點(diǎn)數(shù)據(jù)類(lèi)型,適用于貨幣計(jì)算。

    String(字符串變量)的數(shù)據(jù)類(lèi)型只存放文本,是一個(gè)字符序列,它的每一個(gè)字符用ASCII編碼表示。不包含任何字符的串稱(chēng)為空串。

    Byte數(shù)據(jù)類(lèi)型表示0255之間的數(shù),常用于訪問(wèn)二進(jìn)制文件、圖形和聲音文件

    等。當(dāng)需要把數(shù)據(jù)存放成字節(jié),必須訪問(wèn)各字節(jié)時(shí)可采用Byte類(lèi)型。

    取值僅為True/False的類(lèi)型稱(chēng)為Boolean(布爾)型,缺省值為False

    Date數(shù)據(jù)類(lèi)型用于以特殊方式存放日期和時(shí)間。

    Object變量可引用應(yīng)用程序中或某些其他應(yīng)用程序中的對(duì)象。

    VB缺省規(guī)定,如果在生命中沒(méi)有說(shuō)明數(shù)據(jù)類(lèi)型,則變量的數(shù)據(jù)類(lèi)型為Variant(變體)。Variant數(shù)據(jù)類(lèi)型還包含三種特定值:EmptyNullErrorEmpty值用于確定是否已將一個(gè)值賦予所創(chuàng)建的變量。賦值之前,Variant變量具有值Empty

    Null常用于數(shù)據(jù)庫(kù)應(yīng)用程序,表示未知或丟失為空的數(shù)據(jù)。

    Error值是指已發(fā)出的過(guò)程中的錯(cuò)誤狀態(tài)。

    Variant數(shù)據(jù)類(lèi)型是最為靈活的數(shù)據(jù)類(lèi)型,可以依據(jù)不同的需要進(jìn)行各種數(shù)據(jù)類(lèi)型的轉(zhuǎn)換。它實(shí)際上包含兩部分信息,一部分是數(shù)據(jù)類(lèi)型的信息,一部分是表示數(shù)據(jù)值的信息。但正是由于它的靈活性,又使得它存在著一個(gè)明顯的缺點(diǎn),Variant數(shù)據(jù)類(lèi)型比其他類(lèi)型的數(shù)據(jù)占有更多的內(nèi)存空間。

    2  數(shù)組

    VB中數(shù)組的定義類(lèi)似于變量定義,所不同的是數(shù)組需要指定數(shù)組中的元素個(gè)數(shù),例如:

    Dim Array(9) As Integer

    數(shù)組中包含10個(gè)元素,腳標(biāo)從09

    也可以指定腳標(biāo)的起始值,例如:

    Dim IntegerArray(2 to 10) As Integer

    這個(gè)數(shù)組含有九個(gè)元素,腳標(biāo)從210

    還可以定義多維數(shù)組:

    Dim ThreeD(4,2 to 5,3 to 6) As Integer

    定義一個(gè)三維數(shù)組(4×4×4)。

    數(shù)組
    數(shù)組是一組擁有相同名稱(chēng)同類(lèi)元素。定義數(shù)組后,即創(chuàng)建了數(shù)組。數(shù)組中單個(gè)的數(shù)據(jù)項(xiàng)稱(chēng)為數(shù)組元素,用于訪問(wèn)數(shù)組元素的編號(hào)稱(chēng)為數(shù)組索引號(hào),最小索引號(hào)和最大索引號(hào)稱(chēng)為邊界。
    在VBA中,根據(jù)數(shù)組元素是否變化,分為固定大小的數(shù)組和動(dòng)態(tài)數(shù)組,根據(jù)數(shù)組的維數(shù)又可分為一維數(shù)組和多維數(shù)組。
    1、創(chuàng)建數(shù)組
    用Dim語(yǔ)句來(lái)定義固定大小的數(shù)組,即聲明一個(gè)數(shù)組。如
    Dim myArray(9) As Integer
    上面的代碼創(chuàng)建一個(gè)名為myArray含有10個(gè)數(shù)組元素的一維數(shù)組。注意,所有VBA數(shù)組的下界均從0開(kāi)始,因此上面的代碼所創(chuàng)建的數(shù)組元素從myArray(0)到myArray(9)。
    在Dim語(yǔ)句中不指明數(shù)組元素的個(gè)數(shù)來(lái)聲明動(dòng)態(tài)數(shù)組,如
    Dim myDynamicArray() As Integer
    使用ReDim關(guān)鍵字重新定義數(shù)組的大小:
    ReDim myDynamicArray(10)
    也可以用ReDim關(guān)鍵字同時(shí)聲明一個(gè)動(dòng)態(tài)數(shù)組并指定該數(shù)組的元素個(gè)數(shù):
    ReDim myDynamicArray(5) As Integer
    VBA沒(méi)有限制重新定義動(dòng)態(tài)數(shù)組大小的次數(shù),但在重新定義數(shù)組大小時(shí),原有的數(shù)組數(shù)據(jù)就會(huì)丟失。如果需要保留原來(lái)的數(shù)據(jù),可以使用Preserve關(guān)鍵字:
    ReDim Preserve myDynamicArray(5)
    需要注意的是,如果重新定義數(shù)組時(shí)減小了數(shù)組的大小,則會(huì)丟失被縮減了的那部分元素的數(shù)據(jù)。
    當(dāng)然,與聲明變量一樣,也可以用Public語(yǔ)句聲明公共數(shù)組。
    2、確定數(shù)組的邊界
    可以使用UBound函數(shù)和LBound函數(shù)分別獲取數(shù)組的最大邊界和最小邊界。
    默認(rèn)情況下,VBA的數(shù)組的下界是從0開(kāi)始的,可以在模塊的聲明部分使用Option Base語(yǔ)句來(lái)改變模塊中數(shù)組的起始邊界。如
    Option Base 1
    該語(yǔ)句使數(shù)組元素的索引號(hào)從1開(kāi)始。
    也可以在定義數(shù)組時(shí)指定數(shù)組的上界和下界,如
    Dim <數(shù)組名> (<下界> to <上界>) As <數(shù)據(jù)類(lèi)型>
    3、多維數(shù)組
    多維數(shù)組可以在每個(gè)數(shù)組元素中存儲(chǔ)一組數(shù)據(jù),因此,多維數(shù)組的每個(gè)數(shù)組元素都包含一個(gè)數(shù)組。與一維數(shù)組相同,可以使用下面的兩種方法創(chuàng)建多維數(shù)組:
    (1)Dim <數(shù)組名> (<數(shù)組元素?cái)?shù)1>,<數(shù)組元素?cái)?shù)2>,……) As <數(shù)據(jù)類(lèi)型>
    (2)Dim <數(shù)組名>(<下界> to <上界>,<下界> to <上界>,……) As <數(shù)據(jù)類(lèi)型>
    與一維數(shù)組相似,多維數(shù)組也可以是動(dòng)態(tài)的。
    4、引用數(shù)組中的元素
    可以使用數(shù)組名稱(chēng)和一個(gè)索引號(hào)來(lái)引用數(shù)組中的某個(gè)特定的元素。
    變量與常量:

     

    1)VB允許使用未定義的變量,默認(rèn)是變體變量Variant。

     

    2)在模塊通用說(shuō)明部份,加入 Option Explicit 語(yǔ)句可以強(qiáng)迫用戶(hù)進(jìn)行變量定義。

     

    3)變量定義語(yǔ)句及變量作用域

    Dim          變量 as 類(lèi)型   '定義為局部變量,如 Dim  xyz as integer
    Private      變量 as 類(lèi)型   '定義為私有變量,如 Private xyz as byte
    Public       變量 as 類(lèi)型   '定義為公有變量,如 Public  xyz as single
    Global       變量 as 類(lèi)型   '定義為全局變量,如 Globlal xyz as date
    Static       變量 as 類(lèi)型   '定義為靜態(tài)變量,如 Static  xyz as double
    

    一般變量作用域的原則是,那部份定義就在那部份起作用,模塊中定義則在該模塊那作用。

     

    4)常量為變量的一種特例,用Const定義,且定義時(shí)賦值,程序中不能改變值,作用域也如同變量作用域。如下定義:Const Pi=3.1415926 as single

     

    5,數(shù)組:是包含相同數(shù)據(jù)類(lèi)型的一組變量的集合,對(duì)數(shù)組中的單個(gè)變量引用通過(guò)數(shù)組索引下標(biāo)進(jìn)行。在內(nèi)存中表現(xiàn)為一個(gè)連續(xù)的內(nèi)存塊,必須用Global或Dim語(yǔ)句來(lái)定義。定義規(guī)則如下: Dim 數(shù)組名([lower to ]upper [, [lower to ]upper, ….]) as type ;Lower缺省值為0。二維數(shù)組是按行列排列,如XYZ(行,列)。

     

    除了以上固定數(shù)組外,VBA還有一種功能強(qiáng)大的動(dòng)態(tài)數(shù)組,定義時(shí)無(wú)大小維數(shù)聲明;在程序中再利用Redim語(yǔ)句來(lái)重新改變數(shù)組大小,原來(lái)數(shù)組內(nèi)容可以通過(guò)加preserve關(guān)鍵字來(lái)保留。如下例: Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)

     

    6,注釋和賦值語(yǔ)句

     

    1)注釋語(yǔ)句是用來(lái)說(shuō)明程序中某些語(yǔ)句的功能和作用;VB中有兩種方法標(biāo)識(shí)為注釋語(yǔ)句。

     

    單引號(hào) ’ ;如:’定義全局變量;可以位于別的語(yǔ)句之尾,也可單獨(dú)一行

     

    Rem ;如:Rem定義全局變量;只能單獨(dú)一行

     

    2)賦值語(yǔ)句是進(jìn)行對(duì)變量或?qū)ο髮傩再x值的語(yǔ)句,采用賦值號(hào) =,如X=123:Form1.caption=”我的窗口”。對(duì)對(duì)象的賦值采用:set myobject=object 或 myobject:=object

     

    7,書(shū)寫(xiě)規(guī)范:

     

    1)VBA不區(qū)分標(biāo)識(shí)符的字母大小寫(xiě),一律認(rèn)為是小寫(xiě)字母;

     

    2)一行可以書(shū)寫(xiě)多條語(yǔ)句,各語(yǔ)句之間以冒號(hào) : 分開(kāi);

     

    3)一條語(yǔ)句可以多行書(shū)寫(xiě),以空格加下劃線(xiàn) _ 來(lái)標(biāo)識(shí)下行為續(xù)行;

     

    4)標(biāo)識(shí)符最好能簡(jiǎn)潔明了,不造成歧義。

    運(yùn)算符

    VB具有豐富的運(yùn)算符集,大體上分為三類(lèi),算術(shù)運(yùn)算符、關(guān)系運(yùn)算符和邏輯運(yùn)算符。

    5.3.1  算術(shù)運(yùn)算符

    VB中的算術(shù)運(yùn)算符有如下幾種:

    ^       冪運(yùn)算       -       負(fù)號(hào)

    *                  /      

           整除         Mod     取模

    +                  -      

    以下列出幾個(gè)算術(shù)運(yùn)算的表達(dá)式:

    X=Y^2                       X等于Y的平方

    X=Y^-2                      X等于Y的負(fù)二次方

    X=Y*Z                       X等于Y乘以Z

    X=Y/Z                       X等于Y除以Z

    X=5/2                       X等于5除以2,值為2.5

    X=52                       X等于5用2整除,值為2

    X=5Mod2                     X等于5模2,值為1

    5.3.2  關(guān)系運(yùn)算符

    = 等于                    > 大于                    < 小于

    <> 不等于                 <= 小于等于                >= 大于等于

    如:

    X=Y

    3<>2 ……

    關(guān)系運(yùn)算符與數(shù)學(xué)運(yùn)算符的用法一致,只是表達(dá)方式有所不同而已

    5.3.3  邏輯運(yùn)算符

    VB中的邏輯運(yùn)算符有:

    NOT                                     AND           

    OR                                      XOR            異或

    EQU            邏輯等                     IMP            隱含

    以下分別介紹這幾種運(yùn)算符:

    NOT:邏輯非。對(duì)邏輯值取反,如:

    3<5                     表達(dá)式值為真

    NOT3<5                  取反,表達(dá)式值為假

    AND:邏輯與。兩個(gè)表達(dá)式的值均為真,則結(jié)果為真,如果有任一個(gè)表達(dá)式值為假,則結(jié)果為假。其運(yùn)算規(guī)則如表5-2

    5-2  AND運(yùn)算規(guī)則表

    第一操作符

    第二操作符

    操作結(jié)果

    True

    True

    True

    True

    False

    False

    False

    True

    False

    False

    False

    False

    例如:

    3<5AND4>3     兩個(gè)表達(dá)式結(jié)果均為真,則AND操作結(jié)果為真。

    3<5AND4<3     第一個(gè)表達(dá)式結(jié)果為真,第二個(gè)表達(dá)式結(jié)果為假,則AND操作結(jié)果為假。

    OR:邏輯或。當(dāng)兩個(gè)表達(dá)式中至少一個(gè)為真時(shí),結(jié)果為真。運(yùn)算規(guī)則如表5-3

    5-3  OR運(yùn)算規(guī)則表

    第一操作符

    第二操作符

    操作結(jié)果

    True

    True

    True

    True

    False

    True

    False

    True

    True

    False

    False

    False

    例如:

    3<5OR4<3      第一個(gè)表達(dá)式結(jié)果為真,第二個(gè)表達(dá)式結(jié)果為假,則OR操作結(jié)果為真。

    XOR:邏輯異或。當(dāng)兩個(gè)表達(dá)式值相反時(shí),結(jié)果為真。運(yùn)算規(guī)則如表5-4

    5-4  XOR運(yùn)算規(guī)則表

    第一操作符

    第二操作符

    操作結(jié)果

    True

    True

    False

    True

    False

    True

    False

    True

    True

    False

    False

    False

    例如:

     5/3>1XOR1<0    第一個(gè)表達(dá)式結(jié)果為真,第二個(gè)表達(dá)式結(jié)果為假,則XOR操作結(jié)果為真。

    EQU: 邏輯等。兩個(gè)表達(dá)式的值相同時(shí),結(jié)果為真。運(yùn)算規(guī)則如表5-5

    5-5  EQU運(yùn)算規(guī)則表

    第一操作符

    第二操作符

    操作結(jié)果

    True

    True

    True

    True

    False

    False

    False

    True

    False

    False

    False

    True

    例如:

    3<2EQU(3-1)<0    第一個(gè)表達(dá)式結(jié)果為假,第二個(gè)表達(dá)式結(jié)果也為假,則EQU操作結(jié)果為真。

    IMP:比較兩個(gè)表達(dá)式。當(dāng)?shù)谝粋€(gè)表達(dá)式為假或第二個(gè)表達(dá)式為真時(shí)操作結(jié)果為真。運(yùn)算規(guī)則如表5-6

    5-6  IMP運(yùn)算規(guī)則表

    第一操作符

    第二操作符

    操作結(jié)果

    True

    True

    True

    True

    False

    False

    False

    True

    True

    False

    False

    True

    例如

     3<2IMP3>0      第一個(gè)表達(dá)式結(jié)果為假,第二個(gè)表達(dá)式結(jié)果為真,則IMP操作結(jié)果為真。

    5.4  基本語(yǔ)句

    5.4.1  注釋語(yǔ)句

    在使用注釋語(yǔ)句之前必須先了解注釋的作用,注釋不僅僅是對(duì)程序的解釋?zhuān)袝r(shí)它對(duì)于程序的調(diào)試也非常有用,譬如說(shuō)可以利用注釋屏蔽一條語(yǔ)句以觀察變化,發(fā)現(xiàn)問(wèn)題和錯(cuò)誤。以后注釋語(yǔ)句將是我們?cè)诰幊汤镒罱?jīng)常用到的語(yǔ)句之一。

    VB里,注釋語(yǔ)句有兩種,一種是用“Rem”關(guān)鍵字,這跟DOS里的批處理文件的用法一樣,還有一種是利用單引號(hào)“”,例如:

    ‘Dim a As String

    Rem Dim a As String 的作用是一致的。

    5.4.2  順序語(yǔ)句

    順序語(yǔ)句就是依順序逐條執(zhí)行的語(yǔ)句。在程序中沒(méi)有流程控制語(yǔ)句的情況下,程序中各語(yǔ)句將按順序逐一執(zhí)行,只有在上一條語(yǔ)句執(zhí)行完畢后,才能執(zhí)行下一條語(yǔ)句。

    5.4.3  條件語(yǔ)句

        任何一種程序語(yǔ)言都離不開(kāi)流程控制語(yǔ)句,程序中控制流程的語(yǔ)句有兩種:條件與循環(huán)。掌握這兩種語(yǔ)句是學(xué)習(xí)編程關(guān)鍵的一步,下面首先介紹VB中的條件語(yǔ)句。

    5.4.3.1  IF語(yǔ)句

    在條件語(yǔ)句里,我們先來(lái)學(xué)習(xí)“If……Then……”語(yǔ)句。

    語(yǔ)法:

    If <條件> Then

    <語(yǔ)句>

    End If

    如果希望條件不滿(mǎn)足時(shí)執(zhí)行另一語(yǔ)句,可以以增加一個(gè)else語(yǔ)句:

    If <條件> Then

    <語(yǔ)句>

    else

    <語(yǔ)句>

    End If

    如果Then后面所跟的語(yǔ)句只有一條,可以寫(xiě)成:

    If <條件> Then <語(yǔ)句>

    而不用End If

    還可以在Else里在嵌套If語(yǔ)句,如:

    If <條件> Then

      <語(yǔ)句>

    Else If <條件> Then

      <語(yǔ)句>

    ……

    Else

      <語(yǔ)句>

    End If


    判斷語(yǔ)句

     

    1)If…Then…Else語(yǔ)句

    If condition Then [statements][Else elsestatements]
    如1:If A>B And C<D Then A=B+2 Else A=C+2
    如2:If x>250 Then x=x-100
    或者,可以使用塊形式的語(yǔ)法:
    If condition Then
    [statements]
    [ElseIf condition-n Then
    [elseifstatements] ...
    [Else
    [elsestatements]]
    End If
    如1:
    If Number < 10 Then
    Digits = 1
    ElseIf Number < 100 Then
    Digits = 2
    Else
    Digits = 3
    End If
    

    2)Select Case…Case…End Case語(yǔ)句

    如1:
    Select Case Pid
    Case “A101”
    Price=200
    Case “A102”
    Price=300
    ……
    Case Else
    Price=900
    End Case
    

     

    3)Choose 函數(shù): choose(index, choce-1,choice-2,…,choice-n),可以用來(lái)選擇自變量串列中的一個(gè)值,并將其返回,index 必要參數(shù),數(shù)值表達(dá)式或字段,它的運(yùn)算結(jié)果是一個(gè)數(shù)值,且界于 1 和可選擇的項(xiàng)目數(shù)之間。choice 必要參數(shù),Variant表達(dá)式,包含可選擇項(xiàng)目的其中之一。如: GetChoice? = Choose(Ind, "Speedy", "United", "Federal")

     

    4)Switch函數(shù): Switch(expr-1, value-1[, expr-2, value-2 _ [, expr-n,value-n]]) switch函數(shù)和Choose函數(shù)類(lèi)似,但它是以?xún)蓚€(gè)一組的方式返回所要的值,在串列中,最先為T(mén)RUE的值會(huì)被返回。 expr 必要參數(shù),要加以計(jì)算的 Variant 表達(dá)式。value 必要參數(shù)。如果相關(guān)的表達(dá)式為 True,則返回此部分的數(shù)值或表達(dá)式,沒(méi)有一個(gè)表達(dá)式為 True,Switch 會(huì)返回一個(gè) Null值。

     

    9,循環(huán)語(yǔ)句

     

    1)For Next語(yǔ)句 以指定次數(shù)來(lái)重復(fù)執(zhí)行一組語(yǔ)句

    For counter = start To end [Step step]     ' step 缺省值為1
    [statements]
    [Exit For]
    [statements]
    Next [counter]
    如1:
    For Words = 10 To 1 Step -1             ' 建立 10 次循環(huán)
    For Chars = 0 To 9                    ' 建立 10 次循環(huán)
    MyString = MyString & Chars            ' 將數(shù)字添加到字符串中
    Next Chars                            ' Increment counter
    MyString = MyString & " "           ' 添加一個(gè)空格
    Next Words
    

    2)For Each…Next語(yǔ)句:主要功能是對(duì)一個(gè)數(shù)組或集合對(duì)象進(jìn)行,讓所有元素重復(fù)執(zhí)行一次語(yǔ)句

    For Each element In group
    Statements
    [Exit for]
    Statements
    Next [element]
    如1:
    For Each rang2 In range1
    With range2.interior
    .colorindex=6
    .pattern=xlSolid
    End with
    Next
    這上面一例中用到了 With…End With 語(yǔ)句,目的是省去對(duì)象多次調(diào)用,加快速度;語(yǔ)法為:
    With object
    [statements]
    End With
    

    3)Do…loop語(yǔ)句 在條件為true時(shí),重復(fù)執(zhí)行區(qū)塊命令

    Do {while |until} condition      ' while 為當(dāng)型循環(huán),until為直到型循環(huán),顧名思義,不多說(shuō)啦
    Statements
    Exit do
    Statements
    Loop
    或者使用下面語(yǔ)法
    Do                                ' 先do 再判斷,即不論如何先干一次再說(shuō)
    Statements
    Exit do
    Statements
    Loop {while |until} condition
    

     

    10,其他類(lèi)語(yǔ)句和錯(cuò)誤語(yǔ)句處理

     

    A, 其他循環(huán)語(yǔ)句:結(jié)構(gòu)化程序使用以上判斷和循環(huán)語(yǔ)句已經(jīng)足夠,建議不要輕易使用下面的語(yǔ)句,雖然VBA還支持。

     

    1)Goto line 該語(yǔ)句為跳轉(zhuǎn)到line語(yǔ)句行

     

    2)On expression gosub destinatioinlist 或者 on expression goto destinationlist 語(yǔ)句為根據(jù) exprssion表達(dá)式值來(lái)跳轉(zhuǎn)到所要的行號(hào)或行標(biāo)記

     

    3)Gosub line…line…Return語(yǔ)句, Return 返回到 Gosub line行,如下例:

    Sub gosubtry()
    Dim num
    Num=inputbox(“輸入一個(gè)數(shù)字,此值將會(huì)被判斷循環(huán)”)
    If num>0 then Gosub Routine1 :Debug.print num:Exit sub
    Routine1:
    Num=num/5
    Return
    End sub
    

    4)while…wend語(yǔ)句,只要條件為T(mén)RUE,循環(huán)就執(zhí)行,這是以前VB老語(yǔ)法保留下來(lái)的,如下例: while condition 'while I<50 [statements] 'I=I+1 wend 'Wend

     

    B, 錯(cuò)誤語(yǔ)句處理:執(zhí)行階段有時(shí)會(huì)有錯(cuò)誤的情況發(fā)生,利用On Error語(yǔ)句來(lái)處理錯(cuò)誤,啟動(dòng)一個(gè)錯(cuò)誤的處理程序。語(yǔ)法如下:

    On Error Goto Line   '當(dāng)錯(cuò)誤發(fā)生時(shí),會(huì)立刻轉(zhuǎn)移到line行去
    On Error Resume Next     '當(dāng)錯(cuò)誤發(fā)生時(shí),會(huì)立刻轉(zhuǎn)移到發(fā)生錯(cuò)誤的下一行去
    On Erro Goto 0                '當(dāng)錯(cuò)誤發(fā)生時(shí),會(huì)立刻停止過(guò)程中任何錯(cuò)誤處理過(guò)程
    

    5.5  過(guò)程

    在程序設(shè)計(jì)中經(jīng)常會(huì)有重復(fù)的地方,可以把重復(fù)的部分獨(dú)立為一個(gè)過(guò)程,在使用時(shí)進(jìn)行調(diào)用,從而簡(jiǎn)化代碼編寫(xiě),提高編程效率。過(guò)程可用于壓縮重復(fù)任務(wù)或共享任務(wù)。用過(guò)程編程有兩大好處:

    ·         過(guò)程可使程序劃分成離散的邏輯單元,每個(gè)單元都比無(wú)過(guò)程的整個(gè)程序容易調(diào)試。   

    ·         一個(gè)程序中的過(guò)程,往往不必修改或只需稍作改動(dòng),便可以成為另一個(gè)程序的構(gòu)件。

    Visual Basic 中使用下列幾種過(guò)程:

    1.子(Sub)過(guò)程

    [Private | Public ] [Static] Sub name [arglist]

           [statements]

           [Exit Sub]

           [statements]

    End Sub

    Sub 語(yǔ)句的語(yǔ)法包含下面部分:

    Public|Private  Static 聲明函數(shù)的作用域、生存期。

    Name:必需的。Sub 的名稱(chēng),遵循標(biāo)準(zhǔn)的變量命名約定。

    Arglist:可選的。代表在調(diào)用時(shí)要傳遞給 Sub 過(guò)程的參數(shù)的變量列表。多個(gè)變量則用逗號(hào)隔開(kāi)。

    Statements:可選的。Sub 過(guò)程中所執(zhí)行的任何語(yǔ)句組。事件過(guò)程或其他過(guò)程可按名稱(chēng)調(diào)用子過(guò)程。

    子過(guò)程能夠接收參數(shù),并可用于完成過(guò)程中的任務(wù)并返回一些數(shù)值。但是,與函數(shù)過(guò)程不同,子過(guò)程不返回與其特定子過(guò)程名相關(guān)聯(lián)的值(盡管它們能夠通過(guò)變量名返回?cái)?shù)值)。子過(guò)程一般用于接收或處理輸入數(shù)據(jù)、顯示輸出或者設(shè)置屬性。

        2.函數(shù)(Function 過(guò)程

    [Public | Private ] [Static] Function name [arglist] [As type]

           [statements]

           [name = expression]

           [Exit Function]

           [statements]

           [name = expression]

    End Function

    各參數(shù)分述如下:

    Public|Private  Static:聲明函數(shù)的作用域、生存期。

    Name:必需的。Function 的名稱(chēng),遵循標(biāo)準(zhǔn)的變量命名約定。

    Arglist:可選的。代表在調(diào)用時(shí)要傳遞給 Function 過(guò)程的參數(shù)變量列表。多個(gè)變量應(yīng)用逗號(hào)隔開(kāi)。

    type :可選的。Function 過(guò)程的返回值的數(shù)據(jù)類(lèi)型,可以是 ByteBooleanIntegerLongCurrencySingleDoubleDecimal(目前尚不支持)、DateString(除定長(zhǎng))、ObjectVariant或任何用戶(hù)定義類(lèi)型。任何類(lèi)型的數(shù)組都不能作為返回值,但包含數(shù)組的 Variant 可以作為返回值。

    Statements:可選的。在 Function 過(guò)程中執(zhí)行的任何語(yǔ)句組。

    Expression:可選的。Function 的返回值。

    事件過(guò)程或其他過(guò)程可按名稱(chēng)調(diào)用函數(shù)過(guò)程。函數(shù)過(guò)程能夠接收參數(shù),并且總是以該函數(shù)名返回一個(gè)值。這類(lèi)過(guò)程一般用于完成計(jì)算任務(wù)。

    函數(shù)過(guò)程與子過(guò)程有許多相似的地方,它們之間最大也是最本質(zhì)的區(qū)別就在于,函數(shù)過(guò)程有一個(gè)返回值,而子過(guò)程只是執(zhí)行一系列動(dòng)作。

    事件處理過(guò)程
    要對(duì)一個(gè)控件事件編寫(xiě)事件處理程序,應(yīng)先打開(kāi)窗體的代碼窗口并從可用對(duì)象的下拉列表中選擇所需的控件。然后,從該控件的可用事件下拉列表中選擇所用的事件。此時(shí),對(duì)事件處理程序的定義語(yǔ)句就會(huì)自動(dòng)出現(xiàn)在代碼窗口中,就可以直接編寫(xiě)事件處理程序了。
    在Excel中,有下面幾類(lèi)事件,即Excel應(yīng)用程序事件、工作簿事件、工作表事件、圖表事件、用戶(hù)窗體事件等。
    屬性過(guò)程
    屬性過(guò)程(property procedure)是特殊的過(guò)程,用于賦予和獲取自定義屬性的值。屬性過(guò)程只能在對(duì)象模塊如窗體或類(lèi)模塊中使用。
    有三種屬性過(guò)程:
    Property Let
      給屬性賦值
    Property Get
      獲取屬性的值
    Property Set
      將對(duì)象引用賦給屬性引用
    - - - - - - - - - - - - - - - - - - - -
    調(diào)用子過(guò)程和函數(shù)過(guò)程
    子過(guò)程可以用下面三種方法調(diào)用。第一種使用Call語(yǔ)句:
    Call DoSomething(參數(shù)1參數(shù)2,……)
    如果使用Call語(yǔ)句,就必須用小括號(hào)將參數(shù)列表括起來(lái)。
    第二種是直接利用過(guò)程名:
    DoSomething 參數(shù)1參數(shù)2,……
    此時(shí),不用在參數(shù)列表兩邊加上括號(hào)。
    如果不想使用函數(shù)的返回值,可以用上述任一種方法調(diào)用函數(shù)。否則,可以用函數(shù)名作為表達(dá)式的組成部分,如
    If GetFunctionResult(parameter)=1 Then
    如果用函數(shù)調(diào)用作為表達(dá)式的一部分,參數(shù)列表必須放在小括號(hào)中。
    第三種是使用Run方法。


     

    5.6  VB的系統(tǒng)函數(shù)

    VB中,為了增強(qiáng)程序的功能,我們經(jīng)常要調(diào)用系統(tǒng)提供的函數(shù)。這些函數(shù)可以分為以下幾類(lèi):字符處理函數(shù)、數(shù)學(xué)函數(shù)、數(shù)據(jù)類(lèi)型函數(shù)、輸入輸出函數(shù)、圖像函數(shù)和時(shí)間函數(shù)。下面我們就來(lái)分門(mén)別類(lèi)地介紹一些常用的函數(shù)。

    5.6.1  字符處理函數(shù)

    在這一章里,我們將介紹一系列的字符處理函數(shù):Chr,Asc,String,Len,Left,Right,Mid,

    Lcase,Ucase,Ltrim,Rtrim,Trim,Str,Val,InStr,StrComp

    1Chr[$](數(shù)值)函數(shù)

    返回標(biāo)準(zhǔn)擴(kuò)展碼的對(duì)應(yīng)字符。

    說(shuō)明:

    1)數(shù)值范圍在0255之間。

    2Chr()返回的是數(shù)值類(lèi)型,而Chr$()則返回字符類(lèi)型。

    3ANSIASCII碼的擴(kuò)充,其前128個(gè)字符都與ASCII碼相同。

    例如,我們常用以下的語(yǔ)句加入回車(chē)換行符。

    Chr(13)+Chr(10)

    2Asc(“字符”)函數(shù)

    此函數(shù)用來(lái)返回字符的ANSI碼值。

    說(shuō)明:  若輸入為一字符串,則只返回第一個(gè)字符的ASCII碼值。

    例如,

    x=Asc(a         x=97

    x=Asc(ab        x=97

    3String[$](個(gè)數(shù),字符)

    用于重復(fù)某一個(gè)字符。

    說(shuō)明:

    1)“個(gè)數(shù)”用來(lái)指定重復(fù)的次數(shù)。

    2)若“字符”為一字符串,則只重復(fù)復(fù)制第一個(gè)字符。

    4Len(字符串) 函數(shù)

    用于返回字符串的長(zhǎng)度。

    5Left[$](字符串,字符個(gè)數(shù))

    用于返回“字符串”最左邊的長(zhǎng)度為“字符個(gè)數(shù)”的字符串。

    例如,

    Dim  substr  As  String

    substr=Left("Visual Basic",3)

    則,

    substr="Vis"

    6Right[$](字符串,字符個(gè)數(shù))

    用于返回“字符串”最右邊的長(zhǎng)度為“字符個(gè)數(shù)”的字符串。

    例如,

    Dim  substr  As  String

    substr=Right(Visual Basic,3)

    則,

    substr=sic

    7Mid[$](字符串,起始位置,[字符個(gè)數(shù)]

    用于返回一個(gè)子字符串。

    說(shuō)明:

    1)子字符串從“起始位置”開(kāi)始,以“字符個(gè)數(shù)”為長(zhǎng)度。

    2)若省略“字符個(gè)數(shù)”,則從起始位置到字符串的結(jié)尾。

    8Lcase(字符串)和Ucase(字符串)函數(shù)

    Lcase:不論字符串中的字符為大寫(xiě)還是小寫(xiě),一律輸出為小寫(xiě)。

    Ucase:不論字符串中的字符為大寫(xiě)還是小寫(xiě),一律輸出為小寫(xiě)。

    9Ltrim(字符串)、Rtrim(字符串)、Trim(字符串)函數(shù)

    Ltrim(字符串):用于去掉字符串中左邊的空格。

    Rtrim(字符串):用于去掉字符串中右邊的空格。

    Trim(字符串):用于去掉字符串中左右兩邊的空格。

    10Str(數(shù)值)函數(shù) Val(字符串) 函數(shù)

    Str(數(shù)值):用于將數(shù)字轉(zhuǎn)化為字符串。

    Val(字符串):用于將字符串轉(zhuǎn)化為數(shù)值。

    例如,

    Dim  a   As  String

    Dim  b   As  Long

    a=Str(345.45)

    b=Val(234.45

    則,

    a=“345.45”

    b=234.45

    11Instr[起始位置,]“字符串1”,“字符串2[,比較模式]

    此函數(shù)用來(lái)在字符串1中查找字符串2

    說(shuō)明:

    1)從字符串1的“起始位置”處開(kāi)始查找字符串2,如果找到“字符串2,則返回字符串2在字符串1中的起始位置。

    2)比較模式可以為01,為1時(shí),比較時(shí)不區(qū)分大小寫(xiě);為0時(shí),區(qū)分大小寫(xiě)。VB的默認(rèn)設(shè)置為0

    3)若指定了比較模式,則必須指定起始位置,否則就會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。

    12StrComp(字符串1,字符串2,比較模式)

    此函數(shù)用于對(duì)兩個(gè)字符串進(jìn)行比較。

    說(shuō)明:

    1)若字符串1小于字符串2,則返回-1

    若字符串1大于字符串2,則返回1

    若字符串1等于字符串2,則返回0

    2)比較模式可以為01。為1時(shí),比較不區(qū)分大小寫(xiě);為0時(shí),區(qū)分大小寫(xiě)。VB的默認(rèn)設(shè)置為0

    3)字符的比較是從第一個(gè)字符開(kāi)始逐一比較,若出現(xiàn)不匹配字符,則終止比較,返回比較的結(jié)果。

    posted on 2007-12-30 00:22 so true 閱讀(17278) 評(píng)論(3)  編輯  收藏 所屬分類(lèi): Others

    評(píng)論

    # re: [改編]VB基本語(yǔ)法學(xué)習(xí)  回復(fù)  更多評(píng)論   

    不錯(cuò),謝謝哦
    2008-07-14 11:46 | jing

    # re: [改編]VB基本語(yǔ)法學(xué)習(xí)[未登錄](méi)  回復(fù)  更多評(píng)論   

    很好很有用
    2008-07-18 17:24 | Ryan

    # re: [改編]VB基本語(yǔ)法學(xué)習(xí)  回復(fù)  更多評(píng)論   

    樓主,定義多維數(shù)組,沒(méi)有說(shuō)明下標(biāo)從一開(kāi)始,是不是Dim ThreeD(4,2 to 5,3 to 6) As Integer

    定義一個(gè)三維數(shù)組(4×4×4)應(yīng)該是(5×4×4)
    2016-04-20 15:04 | 游客
    主站蜘蛛池模板: 国产精品免费大片| A片在线免费观看| 一本无码人妻在中文字幕免费 | 亚洲激情电影在线| 另类免费视频一区二区在线观看| 亚洲乱码中文字幕手机在线| 羞羞的视频在线免费观看| 波多野结衣一区二区免费视频| 综合偷自拍亚洲乱中文字幕 | 18禁无遮挡无码国产免费网站| 久久久久亚洲精品美女| 四虎成人精品永久免费AV| 亚洲国产第一页www| 99久热只有精品视频免费观看17| 亚洲精品福利视频| h视频在线观看免费完整版| 亚洲va乱码一区二区三区| 思思99re66在线精品免费观看| 亚洲av日韩av永久在线观看| 免费在线观看亚洲| 91视频免费观看高清观看完整| 亚洲性天天干天天摸| 999久久久免费精品国产 | 亚洲成AV人片久久| 在线观看免费a∨网站| 黄色免费网址在线观看| 国产亚洲美女精品久久久2020| 精品国产麻豆免费人成网站| 亚洲国产午夜电影在线入口| 免费看片A级毛片免费看| jizz免费一区二区三区| 久久久久亚洲AV无码麻豆| 久久久久国色AV免费看图片| 杨幂最新免费特级毛片| 亚洲AV无码不卡在线播放| 国产在线观看片a免费观看| 免费无码又爽又黄又刺激网站| 亚洲AV无码1区2区久久| 爽爽日本在线视频免费| a在线观看免费网址大全| 2020亚洲男人天堂精品|