【发布时间】:2015-08-28 14:23:03
【问题描述】:
我有一个 excel 文件,其中包含 A 列中的数字列表和 B 列中的名称列表。数字是唯一的(没有数字重复),但数字不按顺序排列。它代表了我每天需要与他们联系的顺序。
例如
3 John
2 Jane
5 James
1 Jonah
4 Jeremy
在这里,我将按顺序联系 Jonah、Jane、John、Jeremy 和 James。
我计划在列表中添加一个新人 (Kate),并计划第二次联系她。新列表如下所示:
4 John
3 Jane
6 James
1 Jonah
5 Jeremy
2 Kate
现在,我将按顺序联系 Jonah、KATE、Jane、John、Jeremy 和 James。这里的重要事实是,新条目下方的所有数字保持不变,但等于或高于新条目的所有数字都增加 1。有时我会在列表底部添加新条目,有时我会添加新条目通过在列表中间插入一个新行。有时我需要将人员从列表中删除,并且我想反转事件(对于等于或大于新删除的数字的所有数字,他们将从其原始值中减去 1)。
我强烈怀疑我需要设置一个工作表更改事件......逻辑是这样的:
如果在目标范围内输入了一个数字(在本例中为 A 列),则 A列中所有大于或等于新输入数字的数字将是原始值+1。
如果从目标范围中删除了一个数字,那么 目标范围内大于或等于新输入数字的所有数字都将是原始值 - 1。
在 VBA 中表达这一点的最佳方式是什么?
非常感谢!
【问题讨论】:
-
你想改变工作表吗?或者,将
2, Kate放在A7和B7后,点击宏启动就可以了吗?对于VBA,我这样做的方式几乎就是您描述的方式,在末尾添加一个名称将增加所有大于输入的数字......删除将减少那些较低的数字。我会看看我能做什么。
标签: excel vba worksheet-function