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