2012-02-02 70 views
2

我真的不知道这是否是一个编程问题,但我相信你们中的一个人可以轻松地帮助我解决这个问题。Excel(2003) - 单元格上的自动插入日期

我想在Excel中创建一个自动的“插入日期”函数。即当一个人在我的Excel文档中的一行中输入数据时,我希望另一个单元自动显示插入日期。

细胞我试图显示日期站在里面,我写了以下内容:

=IF(ISBLANK(C20);1;TODAY()) 

这个伟大的工程,直到我打开它后的第二天。显然它会将日期设置为“今天”,但如果我希望它只更新一次,在插入时 - 我该如何做?

想像这样(Java - 伪)。

IF(!OTHER.CELL.ISBLANK() && THIS.CELL.ISBLANK()){ 
    THIS.CELL = TODAY(); 
} 

现在,如何在Excel中做到这一点?

在此先感谢。

回答

6

你会使用Worksheet_Change事件

  1. 右键单击工作表标签
  2. 查看 - 代码
  3. 复制并粘贴到下面的代码

此代码

  • 跟踪和更改为colu所述Activesheet
  • 放在当前数据与用户登录名称给每个对应的小区塔d为在这条线 Set rng1 = Intersect(Range("C:C"), Target)

    Application.EnableEvents = False指定

仅改变列C细胞被捕获的Mn C为用于停止代码时列d被写入

你可以轻松地适应这
1再烧制)写入不同的(也许是隐藏的)记录表
2)写入一个文本文件,而不是

请让我知道,如果你想要的任何更新

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim rng1 As Range 
Set rng1 = Intersect(Range("C:C"), Target) 
If rng1 Is Nothing Then Exit Sub 
Application.EnableEvents = False 
rng1.Offset(0, 1).Value = Now() & " - " & Environ("username") 
Application.EnableEvents = True 
End Sub 

enter image description here

+1

完美!我必须赞同彻底的答案,从Excel的屏幕。 :) – Joppe 2012-02-02 11:19:26