Excel 用例 - 为大列表提供优先数字 - 自动递增数字

Excel 用例 - 为大列表提供优先数字 - 自动递增数字

[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 列是我的偏好列。

  1. 单击公式功能区 > 计算选项 > 选择“手动”。
  2. 将“=MAX(E:E)+1”粘贴到 BI 中想要作为下一个首选项的单元格中。
  3. 一旦我完成了首选项的分配,就将计算选项恢复为“自动”。
  4. 复制 B 列并粘贴(仅限文本)到空列中,然后复制回 B,以确保安全(防止任何意外更新)。

这不如 David 的宏解决方案优雅。但对于不熟悉宏的人来说,这可能会有所帮助。

相关内容