VIP標(biāo)識(shí) 上網(wǎng)做生意,首選VIP會(huì)員| 設(shè)為首頁(yè)| 加入桌面| | 手機(jī)版| RSS訂閱
食品伙伴網(wǎng)服務(wù)號(hào)
 

第四課理解變量和變量的作用(1)

放大字體  縮小字體 發(fā)布日期:2006-06-16
4.1 代碼存在的位置:模塊

  VBA代碼必須存放在某個(gè)位置,這個(gè)地方就是模塊。有兩種基本類(lèi)型的模塊:標(biāo)準(zhǔn)模塊和類(lèi)模塊。模塊中的每個(gè)過(guò)程或者是函數(shù)過(guò)程,或者是子程序概念.本課的最后部分將討論函數(shù)過(guò)程和子程序的區(qū)別。

  新術(shù)語(yǔ):
  模塊:它是作為一個(gè)單元保存在一起的VBA定義和過(guò)程的集合。
  類(lèi)模塊:VBA允許你創(chuàng)建自己的對(duì)象,對(duì)象的定義包含在類(lèi)模塊中。

  你的大部分工作集中在標(biāo)準(zhǔn)模塊中(簡(jiǎn)稱(chēng)為模塊)當(dāng)錄制宏時(shí)如果不存在模塊,EXCEL自動(dòng)創(chuàng)建一個(gè)。EXCEL和VBA不關(guān)心代碼存放在哪一個(gè)模塊中,只要代碼存在于打開(kāi)的工作簿中即可。

  4.2 對(duì)模塊的概覽

  過(guò)程被定義為VBA代碼的一個(gè)單元,過(guò)程中包括一系列用于執(zhí)行某個(gè)任務(wù)或是進(jìn)行某種計(jì)算的語(yǔ)句。工作簿的每個(gè)過(guò)程都有唯一的名字加以區(qū)分。

  有兩種不同的過(guò)程:子程序和函數(shù)過(guò)程。子程序只執(zhí)行一個(gè)或多個(gè)操作,而不返回?cái)?shù)值。當(dāng)錄制完宏查看代碼時(shí),所看到的就是子程序。宏只能錄制子程序,而不能錄制函數(shù)過(guò)程。一個(gè)子程序的例子如清單4-1所示。

程序清單4-1 子程序的例子

Sub cmdSmallFont_Click()
With Selection.Font
.Name="Arial"
.FontStyle="Regular"
.Size=16
End With
End sub

  上面列出的過(guò)程實(shí)際上是一個(gè)事件過(guò)程。通過(guò)它的名字,就可以知道這是一個(gè)事件過(guò)程。這個(gè)過(guò)程的名字是由一個(gè)對(duì)象的名字CmdSmallFont和一個(gè)事件的名字Click組成的,兩者之間用下劃線分開(kāi)。如果還不明白,可以告訴你,CmdSmallFont是一個(gè)命令按鈕的名字。也就是說(shuō),當(dāng)單擊這個(gè)命令按鈕時(shí),就會(huì)運(yùn)行這個(gè)事件過(guò)程。

  函數(shù)過(guò)程通常情況下稱(chēng)為函數(shù),要返回一個(gè)數(shù)值。這個(gè)數(shù)值通常是計(jì)算的結(jié)果或是測(cè)試的結(jié)果,例如False 或True.正如前面所說(shuō),可以用VBA創(chuàng)建自定義函數(shù)。實(shí)際上可以在工作表上使用你創(chuàng)建的函數(shù)。程序清單4-2是一個(gè)計(jì)算價(jià)格的10%為運(yùn)費(fèi)的簡(jiǎn)單例子。

程序清單4-2 簡(jiǎn)單的用戶(hù)定義函數(shù)示例。

Public Function Shipping(Price)
Shipping = Price * 0.1
End Function

  請(qǐng)注意,這個(gè)函數(shù)使用一個(gè)參數(shù)(Price).子程序和函數(shù)都可以使用參數(shù)。不論P(yáng)rice的值是多少,它都將決定運(yùn)費(fèi)額。Price可以是數(shù)字和單元格引用。函數(shù)返回計(jì)算出來(lái)的運(yùn)費(fèi),這個(gè)函數(shù)可以用在單元格中。

A B 
1 Price 100
2 Shipping =shipping(B1)


  4.2.1 創(chuàng)建過(guò)程

  創(chuàng)建第一個(gè)過(guò)程需要兩個(gè)基本步驟。首先,需要向工作簿中添加一個(gè)模塊。接著需要向模塊中添加一個(gè)工程。對(duì)于創(chuàng)建的每一個(gè)應(yīng)用程序,只需添加一次模塊?梢允褂枚鄠(gè)模塊,但這是不必要的。某些開(kāi)發(fā)者喜歡使用多個(gè)模塊,以便根據(jù)他們的目的或者窗體對(duì)過(guò)程進(jìn)行組織。在本練習(xí)中,創(chuàng)建的過(guò)程只顯示一個(gè)消息框。

  在本練習(xí)中創(chuàng)建的過(guò)程只顯示一個(gè)消息框。在本練習(xí)中使用Msgbox是為了提供一個(gè)可見(jiàn)的例子,雖然我們還沒(méi)有介紹過(guò)Msgbox語(yǔ)句,但是在本例中將使用它。要?jiǎng)?chuàng)建該過(guò)程,請(qǐng)按如下步驟進(jìn)行:

  1)打開(kāi)一個(gè)新工作簿。
  2)選擇"工具"-"宏"-"Visual Basic編輯器",打開(kāi)VBA編輯器窗口。
  3)在`VBA編輯器的左面,可以看到“工程資源管理器”窗口。在工程資源管理器窗口的“Thisworkbook"上單擊鼠標(biāo)右鍵,選擇“插入”-“模塊”,這樣就將一個(gè)模塊添加到應(yīng)用程序中了。(如果你沒(méi)有看見(jiàn)“工程資源管理器”窗口,可以按Ctrl+R)
  4)選擇“插入”“過(guò)程”,顯示“添加過(guò)程”對(duì)話(huà)框。
  5)輸入“第一個(gè)工程”作為過(guò)程名字。在“類(lèi)型”分組框中,確認(rèn)選擇了“子程序”。單擊“確定”按鈕。這樣一個(gè)新的過(guò)程就添加到模塊中了。可以在模塊中看到以 Public Sub 第一個(gè)過(guò)程()開(kāi)始,以End Sub結(jié)束的語(yǔ)句結(jié)構(gòu)。
  6)在過(guò)程中插入光標(biāo),輸入以下語(yǔ)句并回車(chē):
Msgbox "這是我的第一個(gè)過(guò)程"
在輸入Msgbox后,會(huì)自動(dòng)彈出一個(gè)消息框告訴你有關(guān)這條命令的信息,稱(chēng)之為自動(dòng)列表技術(shù)。輸入完成的過(guò)程如下所示:
Public Sub 第一個(gè)過(guò)程()
Msgbox "這是我的第一個(gè)過(guò)程"
End Sub

  VBA對(duì)子程序和函數(shù)有如下的命名規(guī)則:
  * 名字中可以包含字母數(shù)字和下劃線。
  * 名字中不能包含空格句號(hào)驚嘆號(hào),也不能包含字符@ & $ #.
  * 名字最多可以包含255個(gè)字符。
 
  4.2.2 運(yùn)行宏

  創(chuàng)建這個(gè)過(guò)程后,可以運(yùn)行一下。運(yùn)行一個(gè)過(guò)程有幾種方法:可以直接使用“運(yùn)行”菜單,“運(yùn)行子程序/用戶(hù)窗體”工具欄按鈕或按下F5鍵。要運(yùn)行一個(gè)過(guò)程,可以按照如下步驟:

  1)單擊“運(yùn)行子程序/用戶(hù)窗體”工具欄按鈕,過(guò)程執(zhí)行并顯示一個(gè)消息框。
  2)單擊消息框之中的“確定”按鈕,關(guān)閉該消息框。

  4.3 保存對(duì)模塊所做的改變

  要保存新過(guò)程,需要保存過(guò)程所駐留的工作簿.可以用VBA編輯器保存工作簿.具體步驟如下:

  1)選擇"文件"-"保存工作簿".因?yàn)楸竟ぷ鞑具沒(méi)有保存過(guò),所以要給它命名.
  2)輸入"HOUR4"作為文件名并按回車(chē)鍵,則工作簿和模塊與過(guò)程都保存下來(lái)了.

 
[ 網(wǎng)刊訂閱 ]  [ 食品專(zhuān)題搜索 ]  [ ]  [ 告訴好友 ]  [ 打印本文 ]  [ 關(guān)閉窗口 ] [ 返回頂部 ]

 

 
推薦圖文
推薦食品專(zhuān)題
點(diǎn)擊排行
 
 
Processed in 0.472 second(s), 745 queries, Memory 2.55 M