When什么时候用得到
宏跑到一半,需要问使用者一个数字或名字,例如「要处理几月份的数据?」弹出一个输入框,让他输入,宏再拿去用。
What这是什么
InputBox输入框
弹出一个小窗口,让使用者输入内容。
Variant万用变量
什么类型都能装的盒子,因为使用者可能输入文字,也可能输入数字。
Default value默认值
使用者什么都不输入、直接按 OK 时用的值。
How一步一步做
基本用法:
Sub Get_Input()
Dim myValue As Variant
myValue = InputBox("Give me some input")
Range("A1").Value = myValue
End SubDim myValue As Variant:准备一个什么都能装的盒子。myValue = InputBox(...):弹出输入框,使用者输入的内容存进myValue。Range("A1").Value = myValue:写进 A1。输入 5 按 OK,A1 就是 5。
加标题和默认值:
Sub Get_Input_With_Default()
Dim myValue As Variant
myValue = InputBox("Give me some input", "Hi", 1)
Range("A1").Value = myValue
End Sub三个参数依序是:提示文字、标题栏文字(Hi)、默认值(1)。什么都不输入直接按 OK,就用 1。
- 1
按 Alt+F11 → Insert → Module,贴入代码
- 2
回到工作表放一个按钮,绑定这个 Sub
- 3
点按钮,输入内容,按 OK
A1 出现你输入的内容。
Hi✕Give me some input1OKCancel
| 写法 | 适合 |
|---|---|
| 只有提示文字 | 快速做简单的输入 |
| 提示 + 标题 + 默认值 | 想让窗口更清楚,或提供常用值 |
❌ 变量用 Integer,使用者却输入了文字:出现错误。用 Variant 比较保险。
❌ 按了 Cancel 没处理:A1 被清空。
Why为什么这样做
✅ 把「会变的数字」交给使用者输入,宏就不用每次改代码。
📌 按 Cancel,InputBox 会返回空白,写进 A1 就变成空的。需要的话先判断。
Sources
Blog / Website: