Excel增加自己的值(循环引用)

时间:2015-04-02 11:06:19

标签: excel counter circular-reference

我在一张看起来像这样的桌子上工作:

Last Type | Today Type | N Days
-------------------------------
  Type1   |   Type2    |   0
-------------------------------
  Type1   |   Type1    |   1
-------------------------------
  Type2   |   Type2    |   20   
-------------------------------

每天更新表格"今天类型"各自的类型。 专栏" N Days"将计算最后一种类型的天数。

1 个答案:

答案 0 :(得分:0)

你可以在excel中使用迭代计算选项,但我不是这个的忠实粉丝,对我来说这个任务似乎非常适合使用Worksheet_change事件处理程序。

尝试在工作表代码中插入此类代码 - 而不是标准模块(因此右键单击工作表名称选项卡并 - >显示代码):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim mycell As Range
If Not Intersect(Target, Columns(2)) Is Nothing Then
  For Each mycell In Intersect(Target, Columns(2))
    If mycell.Value = mycell.Offset(0, -1).Value Then
      mycell.Offset(0, 1).Value = mycell.Offset(0, 1).Value + 1
    Else
      mycell.Offset(0, 1).Value = 0
      mycell.Offset(0, -1).Value = mycell.Value
    End If
  Next mycell
End If
End Sub

请记住以xlsm或xls等包含宏的格式保存工作簿 上面的代码用于A列和B列中的数据(前一个和当前的)和C中的计数器。而不是现实生活中的列(2),使用Range可能更好(" B2:B10&# 34;)或类似的(在上面的代码中出现两次)。