如何展开选择的application.inputbox?

时间:2019-05-13 13:56:01

标签: excel vba

我有一个列表,用户从列表中选择一些单元格。没有范围,只有随机单元格(例如: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-他只知道第一个单元格以及选择了多少个单元格。

1 个答案:

答案 0 :(得分:1)

  1. 针对用户按下取消按钮的情况提供错误处理。
  2. 使用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