【发布时间】:2013-06-03 07:51:13
【问题描述】:
我在 Excel 的列中有一个连续日期列表(1/01/2012、2/01/2012、3/01/2012 等)。我希望 Excel 检查当前日期并将该日期添加到范围的底部,如果它已经不存在的话。我只希望这种情况每天发生一次,这样就没有多余的条目。
例如:
如果列表在 2013 年 2 月 6 日结束,而我在 2013 年 2 月 6 日打开工作簿,则不会发生任何事情。但是,如果我在第二天(2013 年 3 月 6 日)再次打开工作簿,那么该日期将自动添加到列表底部。
我还需要将两个公式复制到该行的下两个单元格中。如果为A20 生成日期,则公式将在B20 和C20 上。对于每个新的日期条目,年/月/日的单元格引用需要增加 1(如一行)。
供参考,第一个公式为:
=SUMIF('Sheet1'!A:A,DATE(YEAR(A1),MONTH(A1),DAY(A1)),'Sheet1'!C:C)`
而另一个公式足够相似,对于解决这个问题来说是多余的。
提前致谢。
编辑:
我想出了如何检查列表并添加新日期
Sub CheckDateAndEnter()
If Sheet10.Cells(Rows.Count, 1).End(xlUp).Value <> Date Then
Sheet10.Cells(Rows.Count, 1).End(xlUp)(2, 1) = Date
Sheet10.Cells(Rows.Count, 1).End(xlUp)(1, 2) = "=SUMIF('Sheet1'!A:A,DATE(YEAR(A304),MONTH(A304),DAY(A304)),'Sheet1'!C:C)"
End If
End Sub
但是,每次发生这种情况时,公式中的那些单元格引用都需要为新列增加一次,我不确定如何实现。
【问题讨论】:
-
如果创建 .xlsm 文件,则可以使用打开工作簿时运行的 VBA。然后只需添加您的支票,看看您是否有最新的日期。
-
由于“SUMIF...”是一个字符串,您可以将更新后的引用插入其中:“=SUMIF...YEAR("&
&"...."
标签: excel excel-2010 vba