如何修改Excel COLUMN_C宏,添加数据输入暂停并实现循环
修改后的COLUMN_C宏(手动输入+循环执行)
以下是满足需求的修改版宏代码,支持手动输入数据、从指定单元格(C8)开始循环执行,直到你选择停止:
Sub COLUMN_C() ' COLUMN_C 宏 - 手动输入+循环执行 ' 快捷键: Ctrl+Shift+C Dim currentCell As Range Dim inputP As String, input25 As String, input2 As String Dim continueLoop As Boolean ' 设置起始单元格为C8 Set currentCell = ThisWorkbook.ActiveSheet.Range("C8") Do ' 定位到第一个输入位置,手动录入数据 currentCell.Select inputP = InputBox("请输入第一个值(原固定值为P):", "输入数据") ' 点击取消则退出循环 If inputP = "" Then Exit Do currentCell.Value = inputP ' 跳转到右侧第3列,录入第二个值 currentCell.Offset(0, 3).Select input25 = InputBox("请输入第二个值(原固定值为25):", "输入数据") If input25 = "" Then Exit Do currentCell.Offset(0, 3).Value = input25 ' 跳转到右侧第5列,录入第三个值 currentCell.Offset(0, 5).Select input2 = InputBox("请输入第三个值(原固定值为2):", "输入数据") If input2 = "" Then Exit Do currentCell.Offset(0, 5).Value = input2 ' 确认是否继续下一行 continueLoop = MsgBox("是否继续下一行?", vbYesNo, "继续执行") = vbYes ' 切换到下一行的起始单元格 Set currentCell = currentCell.Offset(1, 0) Loop While continueLoop End Sub
关键修改说明
- 替换固定值为手动输入:用
InputBox弹出输入框,替代原宏里的固定字符串,让你按需录入数据 - 指定起始位置:直接将起始单元格设为
C8,启动宏后自动定位到该位置 - 循环执行逻辑:通过
Do...Loop实现循环,每完成一行后弹出确认框,选择"是"则继续下一行,"否"或取消输入则终止宏 - 取消退出机制:输入框点击取消(返回空值)时,直接终止宏,避免无效操作
使用步骤
- 打开Excel的VBA编辑器(快捷键
Alt+F11) - 找到原有的
COLUMN_C宏,替换为上述代码 - 保存文件(需保存为
.xlsm格式,否则宏会丢失) - 返回Excel界面,按
Ctrl+Shift+C启动宏,按提示完成数据录入即可
内容的提问来源于stack exchange,提问作者Ian Harmer
相关产品推荐
相关产品推荐

