1

我有一个定义的名称称为“Input_Range”。如果正在编辑输入范围的最后一个空行(向空行添加值),则自动插入一个空行。

我已经在这个问题上工作了几天,但没有解决方案。我只能这样做:Worksheet_change 事件来检测定义的名称范围内是否有数据被编辑或选择,然后插入一行。即使我编辑非空行(如范围的第一行),它仍然会添加另一行。

请帮忙!

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

我只是想想这个问题,也许我可以做到:如果范围(“Input_range”)中没有空行,则插入一个空行。我还没有这方面的。好吧,仍然需要学习如何检测范围的一行是否为空,但更好。我会解决这个问题,如果我有问题,请帮助我。

4

1 回答 1

2

这是你正在尝试的吗?

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
于 2012-05-15T08:46:00.797 回答