由于工作簿中的更改而导致日期戳记的“日志文件”

时间:2011-03-10 17:26:55

标签: excel vba logging date

我想跟踪工作簿(DATA)中所做的更改。 DATA-工作簿被几个人用来共享信息。不同的人用他们的相关信息填写工作簿,最终会自动保存。我想知道每个步骤需要多长时间并将这些日期戳复制到另一个工作簿(LOG)中,这样我就可以看到是否有人忘记填写工作簿。

Info          Requestor     Me          Support 
b1001        Kevin         Anders      Support
              04-03-2011    05-03-2011  09-03-2011                
dd1001      Carl          Anders      Support
              05-03-2011    05-03-2011  07-03-2011
hahv500    Steve         Anders      Support
            07-03-2011      

上述数据只是DATA工作簿的一小部分。

我正在寻找的代码应该打开LOG工作簿,并在有人输入信息时复制数据和日期戳。

请求者通过电子邮件将文件发送给我,然后通过电子邮件发送给支持人员。我想当请求者通过电子邮件发送给我时,第2行和单元格B3被复制到LOG-wookbook中。当我通过电子邮件发送给支持时,单元格C3被复制并粘贴到LOG中,当支持保存时,单元格D3被复制/粘贴。

我期待得到一个简单的答案,因为我不是一个Excel wizzard。

谢谢,

的Anders


感谢您的回答。据我所知,如果目标被更改,该代码会弹出一个消息框,而我不需要它。

第一步我有这个。我不知道如何处理下一步。如果我必须做一些查找......感谢帮助!

    Dim FirstBlankCell As Range

ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
Range("B7") = Now


Workbooks.Open Filename:=Range("Log_destination")
ThisWorkbook.Activate
Workbooks(Range("Log_file_name").Value).Sheets(Range("2011").Value).Activate

Set FirstBlankCell = Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
FirstBlankCell.Activate

ThisWorkbook.Activate
ActiveSheet.Range("A6:D6", "A7:B7").Copy
Workbooks(Range("Log_file_name").Value).Sheets(Range("2011").Value).Activate
Selection.PasteSpecial Paste:=xlPasteValues
ActiveWorkbook.Close True

1 个答案:

答案 0 :(得分:0)

我没有exatct解决方案,但您可以尝试使用WorkBook Events。例如,使用

Option Explicit 
Private Sub WorkSheet_Change(ByVal Target As Range)
  MsgBox "the value was changed"
End Sub 

并将显示消息的操作更改为某个例程,这将更新LOG工作表。当然,您可以将其限制为仅适用于在特定单元格上进行的更改。

希望它有所帮助。