- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
9#
發表於 2014-11-2 10:23
| 只看該作者
我試過 下面也會照你所選的順序依序處理,只是無法知道個別變數的名稱
Dim ZZ, rng
Set rng = ...
t8899 發表於 2014-11-2 08:38 
我想到的有兩種方法可以實現,
不過要看你後續的需求決定要用哪種:
1. 需要抓所選取儲存格的位址字串:- Sub MA3333()
- Dim rng, a$(), i%
- On Error Resume Next
- Set rng = Application.InputBox("請用滑鼠選", Type:=8)
- ReDim a(0)
- For i = 1 To rng.Count
- ReDim Preserve a(i)
- a(i) = rng.Areas(i).Address
- MsgBox "你選擇的第 " & i & "個儲存格位址為 : " & a(i)
- Next
- On Error GoTo 0
- End Sub
複製代碼 2. 需要抓所選取的儲存格物件:- Sub MA3333()
- Dim rng, i%
- On Error Resume Next
- Set rng = Application.InputBox("請用滑鼠選", Type:=8)
- For i = 1 To rng.Count
- MsgBox "你選擇的第 " & i & "個儲存格位址為 : " & rng.Areas(i).Address
- Next
- On Error GoTo 0
- End Sub
複製代碼 會加 On Error Resume Next 是因為若使用者一次選了超過一個儲存格時,
後面會發生錯誤.
因為若位址為 $A$1:$B$1 此類格式時,
count 會算兩個位址,
但 areas 則只算一個位址,
最後 i 會大於陣列最大索引值. |
|