Board logo

標題: [發問] Excel VBA 如何用 inputbox 取得儲存格的行與列 [打印本頁]

作者: seim    時間: 2014-7-10 14:45     標題: Excel VBA 如何用 inputbox 取得儲存格的行與列

我想要使用 inputbox 取得某儲存格的行與列,

寫了下列的 VBA 的是一直出現錯誤, 請教大家問題點在那,

感謝幫忙.

    Dim code As Range
    Dim Code_Row As Integer
    Dim Code_Column As Integer
   
    code = Application.InputBox(prompt:="輸入 Code 欄位")  '出現沒有設定物件變數或 with 區塊變數
    If code = "" Then Exit Sub
   
    Code_Row = code.Row
    Code_Column = code.Column
作者: ML089    時間: 2014-7-10 16:08

回復 1# seim


    code = Application.InputBox(prompt:="輸入 Code 欄位")  '出現沒有設定物件變數或 with 區塊變數
    If code = "" Then Exit Sub

code 是內定函數名稱,請勿使用,改個名字 code1 也可以
作者: seim    時間: 2014-7-10 16:16

請問一下, 以後我如何知道那些是內定函數, 需要避開.

有表可以查詢嗎??
作者: stillfish00    時間: 2014-7-10 23:54

回復 1# seim
可查看Excel說明中Application.InputBox
沒指定參數Type時,預設對話方塊會傳回文字
但你 code = Application.InputBox(prompt:="輸入 Code 欄位")

等號左式為Range物件,右式為文字,這樣會把該文字給到Range的value屬性(預設屬性)
但你的code這個Range又還沒被set(只有宣告而已),所以才會出現"沒有設定物件變數"
作者: c_c_lai    時間: 2014-7-11 06:33

回復 1# seim
因為
  1.     Dim code As Range
複製代碼
宣告為 Range 物件,故一開始必先予以初始設定對應物件:
  1.     Set code = [A1]    '  假設其為 A1 欄位
  2.     code = Application.InputBox(Prompt:="輸入 Code 欄位")
複製代碼
如此便不會有問題了。
作者: stillfish00    時間: 2014-7-11 08:08

回復 5# c_c_lai
這樣是不會有Error,但是和發問的題意就不合了
我傾向於
  1. set code = ActiveSheet.Range(Application.InputBox(Prompt:="輸入 Code 欄位"))
複製代碼
  1. set code = Application.InputBox(Prompt:="請點選儲存格",Type:=8)
複製代碼
第二種 對話方塊 要用點選儲存格的方式輸入

當然,兩種可能都還要另外加一些防呆處理的程式碼




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