Cells(R, DataCol).Resize(, ColumnCount).Copy
Cells(R, DataCol).Offset(RowOffset * (R - StartRow), ColOffset).PasteSpecial xlValues
嘿,当我使用上面的代码从一个模块中运行时,它触发了在工作表
中写入的val更改。Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 15 Then
Target.Offset(0, 1).Value = Now()
End If
End Sub
现在,代码的Cells部分正在将一个包含四个单元格的块复制到第12列,直到第15列,但是change val没有识别出第15列的值发生了变化。但是,当我将目标列更改为11时,
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 11 Then
Target.Offset(0, 1).Value = Now()
End If
End Sub
为整个单元格块更改值,因此进行了四个目标更改。
谢谢。
如何处理Target以占>1个单元格:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c as Range
For each c in Target.cells
If c.Column = 11 Then
c.Offset(0, 1).Value = Now()
End If
Next c
End Sub
或:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng as Range
Set rng = Application.Intersect(Target, Me.Columns(11))
If not rng is nothing then
rng.Offset(0, 1).Value = Now()
End If
End Sub
在您从更改子更新电子表格之前禁用事件也是一个好主意(否则您只需通过更新重新触发事件)。使用
Application.EnableEvents=False
然后设置为True完成后(不要忘记这部分!)