国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
第四講 Excel vba 程序及常用語(yǔ)句

第四講 Excel  vba 程序及常用語(yǔ)句

           本講內(nèi)容:Sub過程與程序流程控制語(yǔ)句

                 主  講:ggsmart(葉楓)

一、   SUB過程

1           什么是Sub 過程

就是通過代碼完成一個(gè)任務(wù)。

Vba 的過程主要包括“sub過程”和“function函數(shù)過程”兩種。

Sub過程運(yùn)行后不可反回值;function函數(shù)過程運(yùn)行后可以返回值。

2           聲明sub過程

l  錄制“宏”就是一個(gè)簡(jiǎn)單的sub過程。使用錄制宏功能只能生成sub過程的代碼。

l  Sub 過程的特點(diǎn):

1)         以“sub過程名()”開頭,以“end sub”結(jié)束;

2)         Sub 過程一般保存在模塊里;

3)         返回運(yùn)行結(jié)果。

3           Sub語(yǔ)句

[ public | private ]  [static]  sub 過程名稱

[參數(shù)1,參數(shù)2……]

[語(yǔ)句塊]

[Exit Sub]

[語(yǔ)句塊]

End sub

注釋:[public]公共過程,表面聲明的過程是一個(gè)公共過程。一個(gè)過程被聲明為公共過程之后,就表明該過程中所有模塊中其他過程都可以訪問這個(gè)過程。公共過程一般被省略。

[private]私有過程,表明這個(gè)過程聲明為私有過程。私有過程只能在同一模塊中被其他過程可以訪問。

[static]過程結(jié)束后將保存過程中的變量。

Sub過程是必須的,表明過程的存在。后面括號(hào)里的參數(shù)是一系列的變量,這些變量將接受傳遞到過程中的參數(shù)值,使用“”分割參數(shù)。如果過程沒有參數(shù)就必須有一組空的括號(hào)。如我們錄制的宏就是沒有參數(shù)的sub過程。

[Exit sub]是在過程正式結(jié)束之前強(qiáng)制立即在過程中退出。

End sub必須選擇的語(yǔ)句,表示過程的結(jié)束。它與sub是一對(duì),再寫入sub過程回車后它自用產(chǎn)生。

例如:使用MsgBox對(duì)話框顯示提示文字“這是我的第一個(gè)VBA過程”

代碼:Sub mysub()

MsgBox "這是我的第一個(gè)VBA過程"

End Sub

例如:使用private過程顯示MsgBox對(duì)話框的提示文字“這是我的第一個(gè)私有過程語(yǔ)句”

代碼:Private Sub tset()

MsgBox "這是我的第一個(gè)私有過程語(yǔ)句"

End Sub

Sub 語(yǔ)句可以相互調(diào)用。調(diào)用的方法是只需在另一個(gè)程序代碼中輸入該過程的名稱。方法如下:

l  輸入過程名以及參數(shù),參數(shù)使用逗號(hào)隔開。

例如:Sub text()

mysub

End Sub
 

技巧:點(diǎn)擊“工具”——宏——選擇“mysub,這是就會(huì)調(diào)出第一個(gè)sub過程語(yǔ)句。

l  在過程名稱以及參數(shù)前使用Call 過程名[(參數(shù)1,參數(shù)2,]

例如:Sub text()

Call mysub

End Sub

l  利用Application對(duì)象的run方法


Application。Run表示過程名的字符串(或字符串變量)[,參數(shù)1,參數(shù)2…]

例如:Sub myapp()

Application.Run "mysub"  ‘run之后是空格,表示過程名稱的字符串,字符串需要使用英文狀態(tài)下的雙引號(hào)括起來

Application.Run "tset"

End Sub

又例如:Sub myapp()

Dim a As String

               a = "siyou"

               Application.Run a

End Sub

公共模塊可以在其他模塊調(diào)用,私有模塊只能在本模塊里調(diào)用。

二、   判斷與循環(huán)語(yǔ)句

1.       順序結(jié)果語(yǔ)句:就是從上到下,有程序的第一行語(yǔ)句執(zhí)行到最后一行語(yǔ)句。如宏代碼。

2.       判斷分支語(yǔ)句:它是根據(jù)條件跳過部分語(yǔ)句執(zhí)行另一部分的語(yǔ)句。

3.       循環(huán)語(yǔ)句:就是循環(huán)執(zhí)行一段語(yǔ)句。

l  IF語(yǔ)句

IF 邏輯表達(dá)式  Then

語(yǔ)句塊1

[Else 語(yǔ)句塊2]

End  If

                     
 
實(shí)例1. 如圖所示                  

 

代碼1.

 Sub 出題() '********生成新的題目

   [d6].Value = Int(Rnd * 20)

   [f6].Value = Int(Rnd * 20)

End Sub

 

Sub dt()

'   If [h6].Value = [d6].Value + [f6].Value Then '***檢查是否答對(duì)

'      MsgBox "答對(duì)了,你真棒!"

'   End If

'   If [h6].Value <> [d6].Value + [f6].Value Then '***檢查是否答對(duì)

'      MsgBox "答錯(cuò)了,繼續(xù)努力!"

'   End If

 

   代碼2.

If [h6].Value = [d6].Value + [f6].Value Then '***檢查是否答對(duì)

      MsgBox "答對(duì)了,你真棒!"

   Else

      MsgBox "答錯(cuò)了,繼續(xù)努力!"

   End If

   Call 出題 '調(diào)用過程,重新生成題目

End Sub
 
        技巧:  注釋代碼方法:選擇需要注釋的代碼區(qū)域,單擊“視圖”——工具欄——編輯——“設(shè)置注釋塊”按鈕。
 

l  If 邏輯表達(dá)式1  Then

語(yǔ)句塊1

[ElseIf邏輯表達(dá)式2  Then

語(yǔ)句塊2

Elseif 邏輯表達(dá)式3  Then

語(yǔ)句塊3

……..

Else

語(yǔ)句塊n

End  if

代碼3.

Sub test()

   If [h6].Value = "" Then

      MsgBox "還沒有輸入答案!"

   ElseIf [h6].Value = [d6].Value + [f6].Value Then '***檢查是否答對(duì)

      MsgBox "答對(duì)了,你真棒!"

   Else

      MsgBox "答錯(cuò)了,繼續(xù)努力!"

   End If

   Call 出題

End Sub

l  Select case 語(yǔ)句

If  語(yǔ)句一般是可以嵌套的,他只有二元判斷。如果需要在三種或更多判斷語(yǔ)句上,一般使用select  case 語(yǔ)句。

l  Select case 語(yǔ)句測(cè)試表達(dá)試

Case 表達(dá)式列表1

語(yǔ)句塊1

Case 表達(dá)式列表2

語(yǔ)句塊2

Case 表達(dá)式列表3

語(yǔ)句塊3

………..

Case 表達(dá)式列表n

語(yǔ)句塊n

Case Else

語(yǔ)句塊  n+1

End select

1.      測(cè)試表達(dá)式必須為數(shù)值表達(dá)式或字符串表達(dá)式,

2.      表達(dá)式列表可以是用逗號(hào)隔開的表達(dá)式,也可以使用 TO IS 關(guān)鍵字。如:

l  Case1,2,3,4

l  Case 1 to 4

l  Case is<4

3.      case語(yǔ)句后面可以使用多重表達(dá)式,各表達(dá)式的數(shù)據(jù)類型可以不相同,他們之間是“邏輯表達(dá)式”的關(guān)系。如:case 1 to4,”4”

實(shí)例2.

代碼1. Sub sl1()

   Select Case [h6].Value

       Case ""

           MsgBox "還沒有輸入答案。"

       Case [d6].Value + [f6].Value

           MsgBox "答對(duì)了,真棒!"

       Case Else

           MsgBox "答錯(cuò)了,請(qǐng)繼續(xù)努力!"

   End Select

   Call 出題 '********重新出題

End Sub

實(shí)例3.如圖所示

代碼:Sub sl級(jí)()

   Dim dj As String

   Select Case [d3].Value

       Case Is >= 90

          dj = "A"

       Case Is >= 80

          dj = "B"

       Case Is >= 60

          dj = "C"

       Case Is >= 20

          dj = "D"

       Case Else

          dj = "E"

    End Select

    [e3].Value = dj

End Sub

l  FOR 循環(huán)語(yǔ)句

For next  循環(huán)語(yǔ)句

For  循環(huán)變量 = 初值  To 終值 [ spet 步長(zhǎng)]

循環(huán)體

[Exit  For]

循環(huán)體

Next 循環(huán)變量
實(shí)例3.計(jì)算1 100的自然數(shù)和。

代碼:Sub sum1to100()

    Dim mysum As Long, i As Integer

    For i = 1 To 100 Step 1

        mysum = mysum + i

        Debug.Print I   這個(gè)語(yǔ)句的作用是將I的傳遞輸入到立即窗口

    Next i

    MsgBox "1100的自然數(shù)和是:" & mysum

End Sub

注釋:第一次循環(huán)的時(shí)候,循環(huán)變量的值等于初值,在這個(gè)過程里就是1。循環(huán)變量等于循環(huán)變量+步長(zhǎng),這里就是1+1=2,一次循環(huán)到終值100.

實(shí)例4.

Sub 等級(jí)for()

   Dim dj As String, i As Integer

   For i = 14 To 157 Step 1

     Select Case Cells(i, "D").Value

         Case Is >= 90

            dj = "A"

         Case Is >= 80

            dj = "B"

         Case Is >= 60

            dj = "C"

         Case Is >= 20

            dj = "D"

         Case Else

            dj = "E"

      End Select

      Cells(i, "E").Value = dj

    Next i

End Sub

 

l  For  Each Next  循環(huán)語(yǔ)句

  For  each  元素變量  In 對(duì)象集合

   語(yǔ)句塊

[Exit  for]

語(yǔ)句塊

Next  [元素變量]

這主要是針對(duì)數(shù)組或集合中的每個(gè)元素重復(fù)地執(zhí)行一組語(yǔ)句。

實(shí)例5.  Sub 等級(jí)each()

Dim dj As String, rng As Range

   For Each rng In Range("d14:d143")

     Select Case rng.Value

         Case Is >= 90

            dj = "A"

         Case Is >= 80

            dj = "B"

         Case Is >= 60

            dj = "C"

         Case Is >= 20

            dj = "D"

         Case Else

            dj = "E"

      End Select

      rng.Offset(0, 1).Value = dj

    Next rng

End Sub

實(shí)例6. Sub ll()

  Dim dj As String, i As Integer

  For i = 14 To 143

      Select Case Cells(i, "D").Value

         Case Is >= 90

              dj = "A"

         Case Is >= 80

              dj = "B"

         Case Is >= 60

              dj = "C"

         Case Is >= 20

              dj = "D"

         Case Else

              dj = "E"

      End Select

      Cells(i, "E").Value = dj

  Next i

End sub

l  Do [while]循環(huán)語(yǔ)句

1.開頭判斷循環(huán)條件

Do [while循環(huán)條件]

循環(huán)體

[exit  do]

循環(huán)體

Loop

2.結(jié)尾循環(huán)判斷條件

Do

循環(huán)體

[eixt do]

循環(huán)體

Loop [while循環(huán)條件]

第二種比第一眾多執(zhí)行一次循環(huán)。

l  1. 開頭判斷循環(huán)體          2.結(jié)尾判斷循環(huán)體

  DO UNTIL循環(huán)語(yǔ)句          DO

DO [until循環(huán)條件]            循環(huán)體

循環(huán)體                      [Exit do]

[Exit do]                      循環(huán)體

循環(huán)體                     loop [until循環(huán)語(yǔ)句]

LOOP

直接循環(huán)條件為真時(shí)退出循環(huán),這是DO UNTIL do while  的區(qū)別。

實(shí)例7. 如圖所示
 

Sub 等級(jí)do()

Dim dj As String, i As Integer

i = 3

   Do While Cells(i, "D") <> ""

     Select Case Cells(i, "D").Value

         Case Is >= 90

            dj = "A"

         Case Is >= 80

            dj = "B"

         Case Is >= 60

            dj = "C"

         Case Is >= 20

            dj = "D"

         Case Else

            dj = "E"

      End Select

      Cells(i, "E").Value = dj

      i = i + 1

    Loop ' 返回語(yǔ)句

End Sub

                                                                                                                                         全部結(jié)束

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA基礎(chǔ)知識(shí)小結(jié)
VBA中的語(yǔ)句——循環(huán)
VBA筆記:基礎(chǔ)語(yǔ)句結(jié)構(gòu)
三種基本結(jié)構(gòu)語(yǔ)句
EXCELHOME VBA培訓(xùn)第三課時(shí)學(xué)習(xí)筆記
《Visual Basic語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第3版)》第7章 控制結(jié)構(gòu)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服