1

「Input_Range」という名前が定義されています。入力範囲の最後の空の行が編集されている (空の行に値を追加する) 場合、空の行を自動的に挿入します。

私はこの問題に数日間取り組んできましたが、解決策はありません。私ができることは、定義された名前の範囲内のデータが編集または選択されているかどうかを検出する Worksheet_change イベントで、行を挿入することだけです。空でない行 (範囲の最初の行など) を編集しても、別の行が追加されます。

助けてください!

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

問題について考えるだけで、おそらく実行できます。range("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 に答える