W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
除了InputBox函數(shù)之外,還有InputBox方法,如果你激活對(duì)象瀏覽器,然后搜索“inputbox”,VB將顯示兩個(gè)InputBox——一種為Excel庫,另一種為VBA庫(見圖4-12)。InputBox方法在Excel庫里面可用,它的語法和本章前面講的InputBox函數(shù)的語法有輕微差別,它的語法為:
[HelpContextID], [Type] )
所有方括號(hào)里面的參數(shù)都是可選的。Prompt(提示)參數(shù)是顯示于對(duì)話框上的信息;Title是對(duì)話框的標(biāo)題;而Default是對(duì)話框上文本框里的初始值。Left和Top參數(shù)是明確對(duì)話框在屏幕上的位置。這些參數(shù)的輸入值的單位是Point(1/72英寸)。當(dāng)用戶點(diǎn)擊幫助按鈕時(shí),參數(shù)HelpFile和HelpContextID明確幫助文件名稱以及某個(gè)明確的幫助主題。InputBox方法的最后一個(gè)參數(shù)——Type(類型)明確返回的數(shù)據(jù)類型。如果你忽略這個(gè)參數(shù),InputBox方法將會(huì)返回文本格式。類型參數(shù)的值列在表4-3里。
圖4-12 別忘記使用對(duì)象瀏覽器來搜索VB函數(shù)和方法
表4-3 InputBox方法返回的數(shù)據(jù)類型
如果你使用3作為Type參數(shù)的話,用戶將既可以輸入一個(gè)數(shù)字也可以輸入一個(gè)文本。這個(gè)值是將1(數(shù)字)和2(字符串)加和而得到的。InputBox方法很適合那些需要用戶選擇工作表單元格范圍的VBA程序。
1. 關(guān)閉對(duì)象瀏覽器,如果你已經(jīng)打開了的話
2. 在模塊Sample8里面,輸入下列過程WhatRange:
Sub WhatRange()
Dim newRange As Range
Dim tellMe As String
tellMe = "Use the mouse to select a range:"
Set newRange = Application.InputBox(prompt:=tellMe, _
Title:="Range to format", _
Type:=8)
newRange.NumberFormat = "0.00"
newRange.Select
End Sub
過程WhatRange開始于一對(duì)象變量的聲明——newRange。試回想一下第三章,對(duì)象變量指向數(shù)據(jù)的地址。用戶選擇的單元格被賦值給對(duì)象變量newRange。注意變量名稱前面的關(guān)鍵字Set:
Set newRange = Application.InputBox(prompt:=tellMe, _
Title:="Range to format", _
Type:=8)
類型參數(shù)(Type:=8)使用戶能夠選擇任何單元格區(qū)域。當(dāng)用戶選中單元格區(qū)域時(shí),下句指令:
newRange.NumberFormat = "0.00"
改變所選單元格的格式。最后一句選擇用戶加亮的區(qū)域。
3.運(yùn)行過程WhatRange。VB顯示一個(gè)對(duì)話框,提示用戶在工作表里選擇一個(gè)單元格區(qū)域。
4. 使用鼠標(biāo)選擇你要的單元格,當(dāng)鼠標(biāo)在單元格上拖動(dòng)時(shí),VB就會(huì)將選擇的區(qū)域引用到對(duì)話框的編輯框里面。
圖4-13 使用Excel的InputBox方法,你可以從用戶處獲得區(qū)域地址
5.你選擇了單元格后,點(diǎn)擊對(duì)話框上的確定按鈕,被選擇的區(qū)域就已經(jīng)設(shè)置好格式了。要檢查是否按你的意思設(shè)置了,你可以在該區(qū)域的任意單元格里輸入一個(gè)整數(shù),這個(gè)數(shù)字應(yīng)該顯示為兩位小數(shù)。
6. 重新運(yùn)行該過程,并且當(dāng)出現(xiàn)對(duì)話框時(shí),點(diǎn)擊取消按鈕。如果你在選擇了一個(gè)單元格或者一個(gè)區(qū)域后點(diǎn)擊確定按鈕,過程WhatRange將工作正常。不幸地是,當(dāng)你點(diǎn)擊取消按鈕或Esc按鈕,VB將顯示一錯(cuò)誤信息——“要求對(duì)象”。當(dāng)你點(diǎn)擊錯(cuò)誤對(duì)話框上的調(diào)試按鈕,VB就會(huì)加亮導(dǎo)致錯(cuò)誤的代碼行。因?yàn)槟悴幌M谌∠麑?duì)話框時(shí)選擇任何單元格,所以你必須想個(gè)法子忽略VB顯示的這個(gè)錯(cuò)誤。使用一個(gè)專門的語句,On Error GoTo 標(biāo)志,你就可以繞過錯(cuò)誤的發(fā)生。該指令的語法如下:
On Error GoTo 標(biāo)志
這個(gè)指令應(yīng)該放在變量聲明行的下面。標(biāo)志可以是除了VB關(guān)鍵字之外的任何你想要的詞語。如果錯(cuò)誤發(fā)生時(shí),VB就會(huì)直接跳到該特別的標(biāo)志,如下面步驟8所示。
7. 選擇“運(yùn)行”-“重新設(shè)置”以取消正在運(yùn)行的程序。
8.將過程WhatRange修改為如下所示W(wǎng)hatRange2:
Sub WhatRange2()
Dim newRange As Range
Dim tellMe As String
On Error GoTo VeryEnd
tellMe = "Use the mouse to select a range:"
Set newRange = Application.InputBox(prompt:=tellMe, _
Title:="Range to format", _
Type:=8)
newRange.NumberFormat = "0.00"
newRange.Select
VeryEnd:
9. 運(yùn)行程序WhatRange2,一旦出現(xiàn)對(duì)話框時(shí)就點(diǎn)擊取消按鈕。注意,這次程序沒有產(chǎn)生錯(cuò)誤。當(dāng)VB遭遇錯(cuò)誤時(shí),就會(huì)跳到位于程序結(jié)尾處的標(biāo)志VeryEnd。位于錯(cuò)誤和標(biāo)志VeryEnd之間的語句被忽略了。
技巧:子程序和函數(shù):你應(yīng)該使用哪個(gè)?
創(chuàng)建子程序的時(shí)候:
?
①需要執(zhí)行一些動(dòng)作
②需要獲取用戶信息
③需要在屏幕上顯示信息
創(chuàng)建函數(shù)的時(shí)候:
①需要不只一次的做一些簡單的計(jì)算
②需要做復(fù)雜的計(jì)算
③需要不只一次地調(diào)用相同的指令塊
④需要檢查某些表達(dá)正確與否
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: