我有一个列表,用户从列表中选择一些单元格。没有范围,只有随机单元格(例如:A8,A2,A5 ..)。我无法在一个消息框中说出这些数据。
Sub ex81()
Dim r As Range
Set r = Application.InputBox("choose cells:", Type:=8)
ca = Application.CountA(r)
For i = 1 To ca:
MsgBox r(i)
Next
End Sub
在此代码中,如果选择了A2,A5,A7,它将向我显示A2,A3,A4-他只知道第一个单元格以及选择了多少个单元格。
答案 0 :(得分:1)
For Each
循环遍历所有选定的单元格。示例:
Option Explicit
Public Sub ex81()
Dim ChosenCells As Range
On Error Resume Next 'next line throws error if user presses cancel
Set ChosenCells = Application.InputBox(Prompt:="choose cells:", Type:=8)
On Error GoTo 0 'always re-activate error handling
If ChosenCells Is Nothing Then Exit Sub 'exit if user pressed cancel
Dim iCell As Range
For Each iCell In ChosenCells.Cells
MsgBox iCell.Address
Next iCell
End Sub