我在一张看起来像这样的桌子上工作:
Last Type | Today Type | N Days
-------------------------------
Type1 | Type2 | 0
-------------------------------
Type1 | Type1 | 1
-------------------------------
Type2 | Type2 | 20
-------------------------------
每天更新表格"今天类型"各自的类型。 专栏" N Days"将计算最后一种类型的天数。
答案 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;)或类似的(在上面的代码中出现两次)。