-3

次の問題を教えてください。

行 106 から 109 にデータセットがあります。セル A102 には、現在 3 の値があります。行 103 から 105 は空です。

A102 のセル値に基づいて、行 102 より下の空の行の数を変更する VBA コードを探しています。

例: A102 を 0 に変更すると、行 103 ~ 105 が削除され、データセットは行 103 から開始されます。その後、A102 を 8 に変更すると、8 行が挿入され、データセットは行 111 から開始されます。 。 等々。

これを行う方法がまったくわからないので、助けていただければ幸いです。

4

1 に答える 1

1

基本的に、あなたが求めているのはこれです。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim n As Integer
Dim n1 As Integer

'Do nothing if more than one cell is changed or content deleted

If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
    If Target.Address = "$A$102" Then
        If IsNumeric(Target) Then
            n = 0

            While Range("A103").Offset(n, 0) = ""
                n = n + 1
            Wend

        End If

        For n1 = 1 To n
            Rows("103:103").Select
            Selection.Delete Shift:=xlUp
        Next

        For n1 = 1 To Range("A102")
            Rows("103:103").Select
            Selection.Insert Shift:=xlDown
        Next

    End If

End Sub
于 2013-06-27T13:22:27.113 に答える