设置excel表格中A列为日期列,在任何一行输入信息时其对应A列显示输入时的日期,请问怎样能够达到啊?

比如新建Excel,9/5号在第1至第10行输入资料,A1至A10直接显示9/5。
9/6号在第11至第15号输入资料时A11至A15显示9/6。而A1至A10显示的9/5不会改变
9/7号同上

据我的理解,这个需要编写vba脚本,响应单元格change事件,当键入数据时,自动根据上一行A列的日期来填写数据:


Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A" & Target.Row) = "" And Target.Row > 1 Then
        Range("A" & Target.Row) = Range("A" & Target.Row - 1)
    End If
End Sub





追问

5号照您的方法做是可行的,今天又不行了,我重新复制了一次您写的数据,可是没有效果啊。

追答

不知道你说的是什么情况下没有效果?


上面的代码里,当键入数据时,会自动根据 “上一行” A列的日期来填写数据,这里有个小前提就是这个“上一行”不能是空的,对此,我把代码又稍稍修改了下:


Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("A" & Target.Row) = "" And Target.Row > 1 Then
        LastRow = Cells(Target.Row, 1).End(xlUp).Row '新添加的代码
        Range("A" & Target.Row) = Range("A" & LastRow)
    End If
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-05
Alt+F11 粘贴以下内容:

Private Sub Worksheet_Change(ByVal Target As Range)
if target.column >1 then cells(target.row,1)=date
End Sub
相似回答