-1

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

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

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

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

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

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

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

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

4

1 回答 1

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
于 2016-12-23T18:35:29.757 回答