excel - 如何展开选择的application.inputbox?
问题描述
我有一个列表,用户从列表中选择一些单元格。不是范围,只是随机单元格(例如: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 - 他只知道第一个单元格以及选择了多少单元格。
解决方案
- Cancel包括对用户按下按钮的情况的错误处理。
- 使用
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
推荐阅读
- python - python中的时空插值
- java - PowerMock 中的@PrepareForTest 到底是什么意思?
- javascript - 用来自 JSON 的字符串中的变量值替换 ${dummy}
- angular - 尝试将 Angular 5 升级到 8 时,如何处理“(NPM 脚本'start' 退出但未指示 Angular CLI ....”错误?
- python - 如何知道mayavi打印的球的大小?
- python-3.x - Python 3:我需要输入一个长文本作为输入
- c# - 如何使用 Json.NET 将带有特殊字符的无效 XML 转换为 JSON
- java - 依赖注入框架促进了spring中单例模式的使用
- javascript - 如何在 Safari 中隐藏视频字幕?
- kubernetes - default-scheduler 0/5 个节点可用:1 个节点有 pod 不能容忍的污点,4 个节点有卷节点亲和性冲突