背景 我有一个用作数据输入文件的文件,其中不同的人在不同的列和不同的行中插入数据。我之前在同一张纸上有一个“签字”部分,其中一个单元格会自动填充用户的用户名和日期。因此,当有大量用户时,已明确1)由谁,以及2)在何时将数据插入文件。
我需要帮助 为了减少同一张纸上的信息量,我现在希望在另一张纸上设置“签收”部分。即当 Steve 在例如工作表1中的单元格F:15和G:34中插入数据时,我希望他的用户名和日期自动填充在相同的单元格中(即F:15和G) :34)在表2中。
数据输入范围 在表1中,从第3栏到第36栏&第4行到第44行。为简单起见,我将使Sheet 2看起来与Sheet 1完全相同。因此,Sheet 2上的“输出”范围相同。
当前代码 这是我的旧代码,我需要帮助重写,以便用户名和日期在工作表2上:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Column >= 3 And Target.Column <= 36 And Target.Row >= 4 And Target.Row <= 44 Then
For Each c In Target
If c.Value = "" Then
c.Offset(0, -6).Value = ClearContents
Else
c.Offset(0, -6).Value = Environ("username") & " " & Date
End If
Next c
End If
非常感谢您的帮助!
答案 0 :(得分:0)
只需要将值明确指定给Sheet 2.参见下文。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
If Target.Column >= 3 And Target.Column <= 36 And Target.Row >= 4 And Target.Row <= 44 Then
Dim ws2 as Worksheet
Set ws2 = Worksheets("Sheet2")
For Each c In Target
If c.Value = "" Then
ws2.Range(c.Address).ClearContents
Else
ws2.Range(c.Address).Value = Environ("username") & " " & Date
End If
Next c
End If