【问题标题】:"Log file" of date stamps due to changes in workbook由于工作簿中的更改而产生的日期戳的“日志文件”
【发布时间】:2023-03-28 02:01:02
【问题描述】:

我想跟踪工作簿 (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 被复制并粘贴到日志中,当支持人员保存它时,单元格 D3 被复制/粘贴。

由于我不是 Excel 专家,我期待得到一个简单的答案。

谢谢,

安德斯


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

这是第一步。我不知道下一步该做什么。如果我必须进行一些查找...感谢您的帮助!

    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

【问题讨论】:

  • 我为丑陋的代码道歉 - 我已经尽力了:)

标签: excel vba logging date


【解决方案1】:

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

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

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

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    相关资源
    最近更新 更多