Excel 如何展开所选的application.inputbox?
我有一个列表,用户从列表中选择一些单元格。不是范围,只是随机单元(如:A8、A2、A5..)。我无法打开这些数据,比如在消息框中Excel 如何展开所选的application.inputbox?,excel,vba,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 在这段代码中
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-他只知道第一个单元格以及选择了多少单元格
,以循环所有选定的单元格
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
扩展错误:如果用户取消提示,您会得到一个
变量/布尔值
,不能用设置
关键字分配;如果您省略了Set
关键字,那么如果用户选择一个范围
,您将得到该范围的值
,即一个2D变量
数组,而不是范围
对象。理想情况下,Application.InputBox
函数将封装在一个小型专用函数中,该函数可以在需要时重用,而不是内联使用。