返回目录:excel表格制作
方法一:利用迭代计算
点击excel左上角的“文件”→“选项”,弹出抄的对话框中,选择“公式”选项卡,勾选“启用迭代计算”,“确定”;
将需要填入时间的单元格格式设置为需要的单元格格式,输入公式=IF(A2="","",IF(B2="",NOW(),B2)),A列为录入数据知,B列记录录入数据的时间,需要注意的是,填写数据前,先将公式填充至B列的整个区域,这样道在录入数据时才能自动填写时间。
方法二:数据有效性
在一个辅助单元格(假设C1)中填写公式=now(),用来计算现在的时间,在B列需要填写时间的单元格做数据有效性,方法是:选中B2:B17,选项卡上一次点击:数据→数据有效性→序列→填入公式“=$C$1”,这样在A列填入数据后,B列对应单元格可以通过下拉箭头选择时间填入。
C1的格式不影响B列的显示效果,设置不设置都可以
我用的是office2013版,“数据有效性”叫做“数据验证”,早期版本还是叫“数据有效性”
本人2010版excel,假设表格是这样的,首先将B列设置单元格格式,看自己需知求,选中道B列,右键,设置单元格格式,数字选项卡,自定义,yyyy/mm/dd hh:mm:ss
方法一:数据有效性
在C1单元格写公式=NOW(),C1计算出来的格式不用管,选中B列,数据-数据有效性-序列-来源(用鼠标点一下C1,或者直接输入C1)。这样在A列填写数据结束后,对应的B列单元格的时间通过下拉箭头选则时间。
方法二:迭代计算+函数
首先设置启用迭代计算,见下图,计算次数专默认是100,随便设置,次数少了 计算快。
然后在B列用公式,B2公式=IF(A2="","",IF(B2="",NOW(),B2)),下拉填属充,这样,在A列输入数据后,B列会自动填充当前时间,而且同样不会变化。
1、选中要对应zhidao星期的日期。
2、然后点击右击,选中单元格设置。
3、在弹出的对话框中专选中日期的格式。
4、然后再选择自定义,出现yyyy年m月d日:@格式。
5、将格式改成yyyy年mm月dd日aaaa,然后点击确认。
6、最终呈现效果图,日期与星期同属时显示。
用VBA可以做到
右键工作表标签,选择查看代码
粘贴以下代码并保存
Private Sub Worksheet_Change(ByVal Target As Range)
'______说明↓___________________________________
'某列单元格发生变化
'若变化值不为空,对应列添加变化时间点日期时间
'若变化值为空,删除对应单元格数据
'示例为A列第2行发生变化,对应的B列添加或删除日期
'______说明↑___________________________________
Application.ScreenUpdating = False '关闭屏幕刷新
Dim cA, cB, startRG As String
Dim offsetc As Long
Dim rg As Range
'______设置参数↓e68a84e799bee5baa6331_________________
cA = "A" '变化区域所在列
cB = "H" '日期生成列
startRG = "A2" '变化区域首单元格(防止改动表头触发事件)
'______设置参数↑_________________
offsetc = Columns(cB).Column - Columns(cA).Column
If Not Application.Intersect(Target, Columns(cA), Range(startRG, ActiveCell.SpecialCells(xlLastCell))) Is Nothing Then
For Each rg In Intersect(Target, Columns(cA), Range(startRG, ActiveCell.SpecialCells(xlLastCell)))
If rg <> "" Then
With rg.Offset(0, offsetc)
.Value = Now
.NumberFormatLocal = "yyyy/m/d h:mm:ss;@"
End With
Else
rg.Offset(0, offsetc).Clear
End If
Next rg
End If
Application.ScreenUpdating = True '恢复屏幕刷新
End Sub
然后将工作簿另存为启用宏的工作簿(xlsm格式)