Excel 如何检测正在编辑的单元格是否属于已定义名称范围的最后一行

Excel 如何检测正在编辑的单元格是否属于已定义名称范围的最后一行,excel,vba,Excel,Vba,我有一个定义的名字叫“输入范围”。如果正在编辑输入范围的最后一个空行(将值添加到空行),则会自动插入空行 我已经研究这个问题好几天了,但没有解决办法。我只能做到: 工作表\u更改事件,以检测是否编辑或选择了定义名称范围内的数据,然后插入一行。即使编辑非空行(如范围的第一行),它仍会添加另一行 请帮忙 ========================= 我只是想一想这个问题,也许我可以这样做:如果范围(“Input_范围”)中没有空行,那么插入一个空行。我没有想过这件事。嗯,仍然需要学习如何检测范

我有一个定义的名字叫“输入范围”。如果正在编辑输入范围的最后一个空行(将值添加到空行),则会自动插入空行

我已经研究这个问题好几天了,但没有解决办法。我只能做到: 工作表\u更改事件,以检测是否编辑或选择了定义名称范围内的数据,然后插入一行。即使编辑非空行(如范围的第一行),它仍会添加另一行

请帮忙

=========================


我只是想一想这个问题,也许我可以这样做:如果范围(“Input_范围”)中没有空行,那么插入一个空行。我没有想过这件事。嗯,仍然需要学习如何检测范围中的一行是否为空,但这更好。我会解决这个问题,如果我有问题,请帮助我。

这就是你正在尝试的吗

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim MRange As Range, rng As Range

    On Error GoTo Whoa

    Set MRange = Range("InputRange")

    '~~> Get the last Row of the range
    Set rng = MRange.Range(MRange.Cells(MRange.Rows.Count, 1), _
    MRange.Cells(MRange.Rows.Count, MRange.Columns.Count))

    '~~> Trap changes in the last row of the range
    If Not Intersect(Target, rng) Is Nothing Then
        'If Application.WorksheetFunction.CountA(rng) > 0 Then
            'Application.EnableEvents = False

            'rng.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        'End If
    End If

LetsContinue:
    Application.EnableEvents = True
    Exit Sub
Whoa:
    MsgBox Err.Description
    Resume LetsContinue
End Sub

很难从描述中看出你的问题是什么。你能发布给你带来麻烦的代码吗?作为一个想法,特别是如果你使用XL 2007或2010,你可能会考虑使用表(“列表”在XL 2003)代替。它们具有在您填写最后一行时使用公式添加新行的功能,还具有自动汇总、标题和筛选功能。非常感谢。这是我知道的代码,它是不完整的,因为我无法找出检测最后一行中已编辑单元格的语法。换句话说,如果在“输入”范围内没有空行,则插入一个额外的空行。非常感谢。是的,这就是我要找的。类似gridview的东西