VBA制作范围还包括插入的行

时间:2017-03-22 10:24:36

标签: vba

如果有人更改某些文字,我将使用以下代码更新日期。问题是如果我想插入更多行,因为我已将我的范围定义为“D9:D16”。

是否有办法使这段代码能够观察到插入的新行?

Private Sub Worksheet_Change(ByVal Target As Range)
'Hvis du på noget tidspunkt tilføjer flere rows, så sig til.
Application.EnableEvents = False

If Not Intersect(Range("D9:D16"), Target) Is Nothing Then
    Target.Offset(, -2).Formula = "=UDF_Now()"
        Select Case MsgBox("Er ""Updated by"" den rigtige?", vbYesNo)
        Case Is = vbNo
            Target.Offset(, -1).Activate
        End Select
End If

Application.EnableEvents = True

End Sub

1 个答案:

答案 0 :(得分:0)

Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row可用于查找最后使用的行,因此一旦插入新行,结果将增加1。

所以尝试类似:

If Not Intersect(Range("D9:D" & Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row), Target) Is Nothing Then