[Excel 2013] 我有一个很长的项目列表,我想根据我的偏好手动为每一行添加一个偏好编号。示例如下:
Value Preference
Row1 6
Row2 _
Row3 2
Row4 _
Row5 3
Row6 1
Row7 5
Row8 4
目前,我选择行并手动添加偏好编号。这很累人,尤其是当我选择 3 位数时。我希望 excel 能够帮助在我选择的任何行中自动增加。例如,我接下来选择 Row4,应该将 7 插入为偏好。然后,如果我选择 Row2,应该将 8 插入为偏好。
答案1
宏将是:
Sub enterNextNumber()
If ActiveCell.Value = "" Then ActiveCell.Value = WorksheetFunction.Max(Columns(ActiveCell.Column)) + 1
End Sub
您可以将其链接到Ctrl+之类的快捷方式I,然后只需选择下一个单元格,按下快捷方式,它就会通过查看活动列中最大的现有数字并加 1 来输入序列中的下一个数字。
答案2
谢谢,David。这个宏完全满足了我的要求。
在发布问题后,我想到了一个非宏解决方案。在包含约 10k 行的表格中,它似乎比基于宏的解决方案运行得更快。
B 列是我的偏好列。
- 单击公式功能区 > 计算选项 > 选择“手动”。
- 将“=MAX(E:E)+1”粘贴到 BI 中想要作为下一个首选项的单元格中。
- 一旦我完成了首选项的分配,就将计算选项恢复为“自动”。
- 复制 B 列并粘贴(仅限文本)到空列中,然后复制回 B,以确保安全(防止任何意外更新)。
这不如 David 的宏解决方案优雅。但对于不熟悉宏的人来说,这可能会有所帮助。