当另一个单元格中输入值时,Excel将日期时间输入到单元格中

问题描述:

我试图创建一个充当每行唯一键值的列,在最后一列具有时添加Now()值有它的数据输入到它。我创建了一个sub来检查单元格的范围,以选择一个单元格并在其中包含一个值,如果是,则将Now()值添加到另一列以充当该行的唯一标识符。这是代码,我到目前为止有:当另一个单元格中输入值时,Excel将日期时间输入到单元格中

Private Sub Worksheet_SelectionChange(ByVal Target As range) 

    'Check to see if the click/selected cell is in column H 
    If Not Intersect(Target, range("H:H")) Is Nothing Then 

     'Make sure just one cell is selected and it isnt empty 
     If Target.Cells.Value <> "" And Target.Row > 7 And Target.Row <= 20 Then 

      'Update the "KeyA" value 
      range("A" & Target.Row).Value = Now() 
     End If 

    End If 

End Sub 

可惜,所以如果我点击空单元格,然后添加这只是增加了NOW()值的键列,如果所选择的小区中已经有一个值该值不会将Now()添加到键列。一旦一个条目被添加到选定的单元格后,如何在子节点中添加Now()值,而不必在添加值之后重新选择该单元格?

+4

使用'Worksheet_Change'事件而不是'Worksheet_SelectionChange'。当目标单元格中​​的值被修改时,更改将触发,而SelectionChange在您选择其他单元格时触发。 – Dave

+0

如果你在答案中写下这个问题,我会将其标记为正确并且赞成 – Vbasic4now

+0

我对你所问的有点困惑。当添加'Now()'值时,H列中的值是否已经存在,或者是否希望在更改值后更新?如果之后,请尝试更改事件:'Private Sub Worksheet_Change(ByVal Target As range)' – Brian

使用Worksheet_Change事件而不是Worksheet_SelectionChange

Change将在目标单元格中​​的值被修改时触发,而当您选择不同的单元格时触发SelectionChange