非连续计数细胞

Counting Cells Non-Contiguously

我不太确定如何表达我想做的事情,但我会尽力而为。

我想按点击顺序计算 Excel 中不连续的单元格。

例如,假设第 A 列有一个下拉列表,我希望第 B 列以什么顺序记录第 A 列的下拉列表是 select编辑。因此,如果一个人要跳过 A1:A3 和 select A4,那么 B4 将等于 1;接下来他们 select A2 然后设置 B2=2

这可能吗?我试过索引、vlookups、计数、辅助细胞,但似乎没有任何效果,因为我假设 Excel 以顺序方式思考,而我正在做的是试图解释看似随机的非顺序人类互动。

禁用迭代计算也不是一个选项,因为还有其他依赖迭代的引用。

我知道VBA,但只是很浅薄。任何帮助将不胜感激。谢谢。

将以下 Event 宏放入工作表代码区域:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim A As Range, wf As WorksheetFunction
    Dim B As Range

    Set A = Range("A:A")
    Set B = Range("B:B")
    Set wf = Application.WorksheetFunction
    If Intersect(A, Target) Is Nothing Then Exit Sub
    If Target.Count <> 1 Then Exit Sub
    Application.EnableEvents = False
        Target.Offset(0, 1).Value = wf.Max(B) + 1
    Application.EnableEvents = True
End Sub

因为它是工作表代码,所以安装和自动使用非常容易:

  1. 右键单击 Excel window
  2. 底部附近的选项卡名称
  3. select 查看代码 - 这会弹出一个 VBE window
  4. 粘贴内容并关闭 VBE window

如果您有任何疑虑,请先在试用工作表上尝试一下。

如果您保存工作簿,宏也会随之保存。 如果您使用的 Excel 版本晚于 2003,则必须保存 文件为 .xlsm 而不是 .xlsx

删除宏:

  1. 如上所述调出 VBE windows
  2. 清除代码
  3. 关闭 VBE window

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解有关事件宏(工作表代码)的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/event.htm

必须启用宏才能工作!