返回列表 上一主題 發帖

N=對話框點選的列數

本帖最後由 luhpro 於 2013-10-13 22:06 編輯

回復 1# myleoyes
依據 InputBox 的說明,
這裡 Z 就是所選 Range 的參照, 故而 Z.Row 就是你要的列值囉.
  1. Sub AA()
  2.     Dim Z As Range
  3.        [A1:C1] = ""
  4.     Set Z = Application.InputBox("請選取資料", "        來源數據", Type:=8)
  5.         If Z <= 0 Then Exit Sub
  6.         N = Z.Row 'N = ActiveCell.Row
  7.         [$D$1] = "=" & Z & "-" & N
  8.         [D1].Select
  9. End Sub
複製代碼

TOP

回復 3# myleoyes
那是因為按取消時 InputBox 的傳回值為 "False",
而非儲存格的參照,
自然就無法指定給 Z(Type 為 Range) 了. (發生錯誤代碼 424 : 此處需要物件)

這可以透過錯誤處理來解決:
  1. Sub AA()
  2.   Dim Z As Range
  3.    
  4. On Error GoTo ErrorAA
  5.   [A1:C1] = ""
  6.   Set Z = Application.InputBox("請選取資料", "        來源數據", Type:=8)
  7.   If Z <= 0 Then Exit Sub
  8.   N = 3 'N = ActiveCell.Row
  9.   [$D$1] = "=" & Z & "-" & N
  10.   [D1].Select
  11. On Error Resume Next
  12. Exit Sub
  13.         
  14. ErrorAA:
  15.   If Err.Number = 424 Then
  16.     Exit Sub
  17.   Else
  18.     MsgBox ("發生錯誤, 錯誤代碼 : " & Err.Number & "  錯誤原因 :" & Err.Description)
  19.     Resume Next
  20.   End If
  21. End Sub
複製代碼

TOP

        靜思自在 : 並非有錢魷是快樂,問心無愧心最安。
返回列表 上一主題