作者:乔山办公网日期:
返回目录:excel表格制作
1.手工输入。
2.宏,百当在A列输入度内容时专,在B列自动记录当天的日期属
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value <> "" Then
Cells(Target.Row, 2) = Date
End If
End Sub
如图,在A列录入数据,在B列记录百录入时间,步骤是:
1、点“度office按钮”、“公式”、勾选“启用迭代计算”。
2、在专B2中输入
=IF(A2="","",IF(B2="",NOW(),B2))
3、右击B2单元格,“设置单元格格式”、“自定义”属,在右侧框中输入
yyyy-m-d hh:mm:ss
用vlookup函数只能返回第一条记录,如果这一天有多条记录的话,不能满足要求。得用VBA解决。先打开工作表,按下Alt+F11键打开VBE编辑器,插入一个模块,粘贴以下代码。636f70797a686964616f330然后关闭vbe编辑器,返回工作表,单击视图→工具→窗体→插入一个命令按钮→指定宏为test→每次在D1输入日期后,按钮1就行。
Sub test()
Sheet2.Rows("3:100").ClearContents
Dim x As Integer, y As Integer
For x = 2 To Sheet1.Range("a65536").End(xlUp).Row
y = Sheet2.Range("a65536").End(xlUp).Row + 1
If Application.WorksheetFunction.CountIf(Sheet1.Columns(1), Sheet2.Range("d1")) = 0 Then
MsgBox "该日期没有数据"
Exit Sub
End If
If Sheet1.Range("a" & x).Value = Sheet2.Range("d1") Then
Sheet2.Range("a" & y) = Sheet1.Range("b" & x)
Sheet2.Range("b" & y) = Sheet1.Range("c" & x)
Sheet2.Range("c" & y) = Sheet1.Range("d" & x)
Sheet2.Range("d" & y) = Sheet1.Range("e" & x)
End If
Next x
End Sub
效果如图
这里只是一个例子,有需要传个文件帮你看看。
如下的方法请参考:
由于公式要引用单元格自身,造成循环引用,必须打开“迭代计算e799bee5baa6e78988e69d83337”选项,否则Excel会提示“Microsoft Office Excel 不能计算该公式……,从而造成循环应用。……”的提示。
Excel 2003:单击“工具→选项→重新计算”,勾选“迭代计算”。
Excel 2007/2010/2013:单击“Office按钮(文件)→选项→公式”,在“计算选项”区域勾选“启用迭代计算”。
“最多迭代次数”可保持默认的“100”。
在B1单元格中输入公式:
=IF(A1="","",IF(B1="",TEXT(NOW(),"yyyy-m-d h:mm:ss"),B1))
然后拖动填充柄向下填充公式到所需的位置。
这样,当在A列输入数据时,B列对应的单元格会自动记录当前的日期和时间。
说明1:
上述公式虽然能记录A列单元格中第一次输入的日期和时间,但直接更改A列单元格内容后,该公式并不能记录最后一次输入的日期和时间。要记录A列单元格最后输入的日期和时间,可先按Delete键删除A列单元格内容后再次输入。
说明2:
重新打开Excel后,上述“迭代计算”选项会自动取消。如果启动Excel后打开了一个未设置该选项的工作簿,再次打开已设置“迭代计算”选项的工作簿时,Excel仍会给出循环引用的提示,此时重新设置“迭代计算”选项即可。