因为您的序列号很可能与某些文章相关,并且您已经考虑了多个位置和用户,所以我建议使用 Access。
所有这一切都更倾向于一个数据库,它可能不像 excel 那样为您设置那么直观,但最终它更可靠,更容易处理,当涉及到捕获重复项和进行查询时。
但是,它可以通过两种方式完成。但不要使用now()
- 因为这个函数会在重新计算时更新你的时间。这就是为什么你一遍又一遍地得到相同的时间。
您必须创建并调用一个函数,该函数将时间作为固定文本插入,而不是作为动态内容插入。
但是,在 Access 上,使用 now-function 作为字段的默认值会起作用,因为数据库条目将是值而不是函数。
对于 Excel,在激活新 Worker 时,您必须增加此功能并可以创建/激活 keylistener:
'This code goes into a VBA-Module
'and can be access on a Worksheet calling =myScan("test")
Public Function myScan(strWorker As String)
Table1.Cells(2, 1) = "1"
Table1.Cells(2, 2) = strWorker
Table1.Cells(2, 3) = Now()
End Function
序列号可以从行中得出。主要问题是留在当前/下一行以粘贴数据。
但是你可以——例如——创建一个 Excel 对话框来选择一个 Worker,然后激活一个扫描模式并扫描......你甚至可以连接到一个 Web 或 Access 数据库,而不是将数据存储在 excel 中,我强烈推荐;)
编辑
'This code works, when you place it as the VBA-Code of your worksheet
Private Sub Worksheet_Change(ByVal Target As Range)
'react only on changes on column A
If (Target.Column = 1) Then
'react only on changes on column A when the row is greater than 5
If (Target.Row > 5) Then
'use the current time for Bx
Me.Cells(Target.Row, 2) = Now()
'use the user-name from C2 in Cx
Me.Cells(Target.Row, 3) = Me.Cells(2, 3)
End If
End If
End Sub
使用ALT+F11
打开 VBA-Editor 并选择要使用的表格对象并将上面的代码放入其中,然后保存为 Macro-Excel-Dokument。
您的工作表应如下所示:
每当您从 A6-Ax 更改某些内容时,它都会自动更新。