改变值,目标范围未被识别


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完成后(不要忘记这部分!)

最新更新