Как определить, относится ли редактируемая ячейка к последней строке определенного диапазона имен

У меня есть определенный вызов имени & quot; Input_Range & quot ;. Если редактируется последняя пустая строка входного диапазона (добавить значение в пустую строку), вставьте пустую строку автоматически.

Я работал над этой проблемой в течение нескольких дней, но не нашел решения. Я могу сделать только: Событие Worksheet_change для определения, были ли отредактированы или выбраны данные в пределах определенного диапазона имен, а затем вставьте строку. Даже если я редактирую непустую строку (например, первую строку диапазона), она все равно добавляет еще одну строку.

Пожалуйста помоги!

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

Я просто думаю о проблеме и, вероятно, могу это сделать: если в диапазоне нет пустой строки (& quot; Input_range & quot;), вставьте пустую строку. Я не думал об этом. Что ж, еще нужно научиться определять, является ли строка диапазона пустой, но это лучше. Я буду работать над этим, и если у меня возникнут проблемы, пожалуйста, помогите мне.

 Doug Glancy15 мая 2012 г., 05:14
Как мысль, особенно если вы используете XL 2007 или 2010, вы можете вместо этого использовать Таблицу («Список» в XL 2003). они имеют функцию добавления новой строки с формулами при заполнении последней строки, а также имеют автоматические итоги, заголовки и фильтрацию. Jkp-ads.com / Статьи / Excel2007Tables.asp
 Jon Crowell15 мая 2012 г., 04:12
Трудно сказать, в чем твоя проблема, по описанию. Можете ли вы опубликовать код, который доставляет вам неприятности?
 NCC15 мая 2012 г., 05:26
Спасибо. Вот код I49.tinypic.com / 2zqc775.jpg Я знаю, что это неполно, поскольку я не могу понять, какой синтаксис для определения ячейки был отредактирован в последней строке. Другими словами, если в диапазоне «input» нет пустой строки, вставьте дополнительную пустую строку

Ответы на вопрос(1)

Решение Вопроса

Это то, что ты пытаешься?

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
 Jon Crowell19 мая 2012 г., 14:26
+ 1 для имени обработчика ошибок. Ницца
 NCC15 мая 2012 г., 18:22
Большое спасибо, да, это то, что я ищу. Что-то вроде gridview

Ваш ответ на вопрос