如果上一行为空,则自动填充当前日期

时间:2012-09-22 09:46:48

标签: excel date excel-vba excel-2007 autofill vba

我有一个按日期排序的电子表格。每天,我都会在其中输入新数据。每天过后,我会在第二天开始之前将一行留空。例如:

20.09.12 XXXXX XXXXX XXXXX XXXX
         XXXXX XXXX  XXXXX XX
         XX    XXXXX XX    XXXX

21.09.12 XXX   XXXXX XXX   XXXX
         X     XXXX  XXXX  XXX

22.09.12 XXXX  XX    XXXX  XXXX

因此,每当我在一行空行后输入数据时,我希望excel始终填写当前日期,但显然日期应保持不变 - 每次打开Excel时都不会更新到当前日期。我使用的是Excel 2007,虽然非vba的想法是首选,但vba也不是问题!

2 个答案:

答案 0 :(得分:3)

有一个插入今天日期的快捷方式: Ctrl ;
我想如果你使用快捷方式,你可能不需要宏。

类似的时间快捷键是 Ctrl Shift ;

答案 1 :(得分:1)

使用工作表的Worksheet_Change事件,这是一个相当简单(原始?)的方法。

实际上,每次更改单元格时,它都会检查上面的整行是否为空白,如果是,则将今天的日期放在A列中。

Private Sub Worksheet_Change(ByVal Target As Range)
    If WorksheetFunction.CountA(Rows(Target.Offset(-1, 0).Row)) = 0 Then
        Range("A" & Target.Row) = Format(Now(), "dd.mm.yy")
    End If
End Sub