Excel录入数值后自动跳转下一行空行的宏功能实现咨询
实现Excel数值录入自动跳转下一行的VBA解决方案
直接修改你已编写的宏代码,加入动态定位空行的逻辑即可实现需求,完整可直接复用的代码示例如下:
Sub 数值自动录入() Dim valA As String, valB As String, valC As String, valD As String Dim targetRow As Long ' 以下为弹窗取值逻辑,可直接替换为你现有弹窗的取值代码 valA = InputBox("请输入A列对应数值:", "录入第一个值") If valA = "" Then Exit Sub ' 点击取消直接退出宏 valB = InputBox("请输入B列对应数值:", "录入第二个值") If valB = "" Then Exit Sub valC = InputBox("请输入C列对应数值:", "录入第三个值") If valC = "" Then Exit Sub valD = InputBox("请输入D列对应数值:", "录入第四个值") If valD = "" Then Exit Sub ' 核心逻辑:定位A列最后一个非空行,取其下一行作为目标写入行 targetRow = Cells(Rows.Count, "A").End(xlUp).Row + 1 ' 兼容空表场景,保证首次录入从第2行开始 If targetRow < 2 Then targetRow = 2 ' 将值写入对应行的A-D列 Cells(targetRow, "A") = valA Cells(targetRow, "B") = valB Cells(targetRow, "C") = valC Cells(targetRow, "D") = valD End Sub
适配说明
- 如果你原有弹窗是用户窗体一次性获取4个值,只需保留上述代码中
targetRow的计算逻辑和单元格赋值逻辑,替换掉弹窗取值部分即可 - 原有星形形状的宏绑定不需要修改,直接替换宏代码内容即可生效
- 如果需要录入后自动选中下一行待录入位置,可在代码末尾追加一行
Cells(targetRow + 1, "A").Select
内容的提问来源于stack exchange,提问作者AmirHossein K.Baghery
相关产品推荐
相关产品推荐

