【问题标题】:Timestamp in Excel with very specific requirements [closed]Excel中的时间戳具有非常具体的要求[关闭]
【发布时间】:2017-05-09 10:04:49
【问题描述】:

我需要一些有关可以执行以下操作的 Excel vba 代码的帮助。我充其量只是一个初学者 VBA 程序员,我只需要一些东西来处理我正在处理的电子表格。

我知道关于时间戳代码的问题和答案数不胜数,并且我已经阅读了很多,但我找不到适合我需求的问题和答案。我已经花了几个小时寻找,所以这就是我问的原因。这是我需要的:

  1. 当 A 列中的单元格发生更改而 B 列中的相应单元格为空白时,在 B 列中的单元格上加上当前日期。

  2. 随后,如果 A 列中的一个单元格发生更改,并且 B 列中的相应单元格不为空(因为它已经包含 A 列先前更改的日期戳),则该单元格中的日期戳B 列不应更改。这包括是否将 A 列中的单元格替换为相同的值。

  3. 如果 A 列中的单元格被清除,无论是单独清除还是作为多单元格选择和清除内容的一部分,B 列中单元格中的日期戳不应更改或删除。

  4. 仅当手动清除 B 列中的单元格中的日期戳时,如果再次更改 A 列中相应单元格的值(基本上是重置),是否应该再次使用当前日期进行日期戳.

  5. 第一行是标签,所以不要对第一行的单元格做任何事情。

我希望我已经说得够清楚了。如果没有,请告诉我。在此先感谢您的任何和所有回复,如果这在某处可用但我找不到它,我很抱歉。

【问题讨论】:

  • 您可能永远不会找到适合您需求的代码,我鼓励您学习 more about programming 或雇用一个这样做的人。友情提示:StackOverflow 不是“我们为您编码”的服务提供商。 Introduction to VBA
  • 这是一个简单的Worksheet_Change 事件(参见cyboashu 的链接),当Target.Column 为1 且Target.Row > 1 且IsEmpty(Target.Offset(0,1)) 时,您仅将Target.Offset(0,1).Value 设置为Now()
  • @Sgdva - 我很抱歉,当我试图寻找我的答案时,这个网站出现了很多点击,人们询问并得到了与我相似的答案。我想我错了。您是否会建议我尝试其他网站?
  • @YowE3K - 你指的cyboashu的链接在哪里?抱歉,我是新来的。
  • @Verbatim68 作为最后的评论和OT:尊重他人的工作:如果你不知道怎么做,也不愿意学习,不要指望别人为你做,也不要低估他们的工作. 能够编码已经花费了许多人的研究和时间精力(也不是第一次尝试),this article 可能会给你一个我试图陈述的范围。虽然您尝试优化您所在领域的工作是件好事,但不要指望别人做您的工作,以便您获得回报,只是因为您有这个想法。

标签: vba excel datestamp


【解决方案1】:

试试下面的代码。请给我们一些反馈!

由于您可能同时对多个单元格应用更改(例如,按 Ctrl+Enter),因此我使用循环浏览正在更改的每个单元格。

Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cell In Target.Cells
        If cell.Row > 1 And cell.Column = 1 Then
            If cell.Offset(0, 1).Value = "" Then
                cell.Offset(0, 1).Value = Now()
            End If
        End If
    Next
End Sub

【讨论】:

  • 非常感谢,这正是我想要的!非常感谢您的帮助。
  • 唯一可以让这变得更好的是,如果当我在 A 列中的一个单元格上执行“清除内容”时,它没有一个值,它不会在相应的单元格中添加日期戳B列。也就是说,如果我有一些散布的行在A列中有值并且在B中有相应的日期戳,如果我然后对A中的一系列单元格进行明确的内容,它将保留日期戳,因为它应该,但它也会对因为 A 为空而为空的 B 列单元格添加日期戳。我可以通过先过滤来解决这个问题,但如果有编程修复,那就更好了。
  • @Verbatim68 我认为你必须使用这个条件:If cell.Offset(0, 1).Value = "" And cell.Value <> "" Then
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多