Excel VBA - 根据单元格值的更改调整行数

时间:2013-06-27 13:06:04

标签: excel vba

请你帮我解决一下以下问题:

我在106到109行有一个数据集。在Cell A102中,我有一个当前值为3.行103到105为空。

我正在寻找一个VBA代码,它将根据A102中的单元格值更改第102行下方的空行数。

例如:如果我将A102更改为0,则行103-105将被删除,我的数据集将从第103行开始。如果我然后将A102更改为8,则将插入8行并开始数据集从第111行开始。等等。

我真的不知道该怎么做,所以我真的很感谢你的帮助!

1 个答案:

答案 0 :(得分: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