Board logo

標題: [發問] Application.inputbox 問題---[已解決] [打印本頁]

作者: swatt    時間: 2011-9-7 10:18     標題: Application.inputbox 問題---[已解決]

本帖最後由 swatt 於 2011-9-7 14:21 編輯

請教各位高手大大:
從說明檔案中複製Apllication.inputbox範例如下:
inputbox會有兩個按鈕"確定"與"取消",若按下"取消"則會傳回False
所以自己在後面加上一判斷式,要判斷若按下"取消"按鈕,則Exit sub, 如程式最後一列:
可是程式執行時,按取消鍵都會出現錯誤訊息(如下),不會Exit sub,
找了很久,不曉得問題出在哪裡,希望高人指點一下,謝謝啦~

*******錯誤訊息***********
執行階段錯誤 '13':

型態不符合
***************************

******程式區*****************
Sub tt()
Worksheets("sheet1").Activate
Set mycell = Application.InputBox( _
    prompt:="Select a cell", Type:=8)

If mycell = False Then Exit Sub   ****這一列是自己加上去,要判斷user若按下"取消"按鈕,則Exit sub

End Sub
************************************************
作者: GBKEE    時間: 2011-9-7 11:15

回復 1# swatt
  1. Sub tt()
  2. Dim mycell As Range
  3. Worksheets("sheet1").Activate
  4. On Error Resume Next
  5. Set mycell = Application.InputBox(prompt:="Select a cell", Type:=8)
  6. If mycell Is Nothing Then Exit Sub
  7. End Sub
複製代碼

作者: swatt    時間: 2011-9-7 14:19

回復 2# GBKEE


     感謝GBKEE 大大,
     學到了On Error  用法,並利用range is nothing 成功跳出sub。

     可否再請教一下,之前利用Application.inputbox 所傳回的 "False"會失敗,
     是否因為下面這一句,因mycell為range物件,Application.inputbox 所傳回的 "False"無法寫入mycell而導致??
   
      Set mycell = Application.InputBox(prompt:="Select a cell", Type:=8)

    還是因為其他原因??
    純粹只是想知道原因,若大大有空再請指導一下,謝謝啦~~
作者: GBKEE    時間: 2011-9-7 14:41

回復 3# swatt
刪掉 Set   ,後   mycell = Application.InputBox(prompt:="Select a cell", Type:=8)  
你1樓的程序中If mycell = False Then Exit Sub   就沒問題

Set 是將 變數 指定為物件 , Application.InputBox(prompt的Type 也必須是8
按下取消鍵=沒有將物件指定給變數 而產生錯誤值
作者: swatt    時間: 2011-9-7 15:13

回復 4# GBKEE


    感謝GBKEE大大解惑,
    原來是指定物件失敗造成的,
    因要從inputbox輸入cell,所以SET就取消囉,
    還是要用大大提供的方法,
    再次感謝了~~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)