用户剪切/粘贴行时,连续重新排列范围的ID顺序

时间:2018-07-31 20:36:40

标签: excel-vba

Visual of needed ordering

请查看所附图像,以了解如何在较大的工作表中保持行标识符的基本顺序。随着时间的流逝,用户将在每个“部分”内添加和删除行或上下移动行,以表示相对重要性。这些行(在其中插入或移动到的位置)将按本节中的顺序使用字母ID,而不是它们之前的ID。随着更改的进行,需要VBA脚本执行将字母行标识符重新排序为字母A-Z的操作。

没有代码显示我被困在哪里,因为我什至不确定触发器是什么。基本结构建议和尝试使用的任何特定代码一样值得赞赏。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是一个非vba解决方案,可能会起作用或使您陷入困境:

在每个有字母的单元格中使用以下公式:

=CHAR(ROW()-MATCH("Section "&COUNTIF($A$2:A3,"Section*"),$A$1:$A3,0)+96)

每次用户执行剪切/复制和粘贴操作都将起作用。如果他们完全输入新行,则可以从另一行复制公式。

说明如下:

  • COUNTIF($A$2:A3,"Section*") =计算部分以确定任何给定行属于哪个部分
  • MATCH("Section "& ... COUNTIF ..., $A$1:$A3,0) =查找数据集中该部分开始的行
  • CHAR(ROW()- ... MATCH ... + 96) =从节开始行中减去当前行,并添加64以将数字顺序转换为以(a,b,c,d,e)开头的ascii字符