繁体   English   中英

Excel-VBA:在下面插入行并获取新行作为范围

[英]Excel-VBA: Insert Row below and get new row as Range

如何在范围下方插入新行,然后获得对该新行的引用,以便进行填充?

Dim newRow As Range
newRow = row.Offset(1).EntireRow.Insert

导致对象变量或宽度块变量未设置错误,但插入了新行。 但是,我似乎无法获得参考。

第二个问题是,在上面我可以遍历范围并将行插入该范围内吗? 插入会影响迭代吗?

我的先前声明有误,因为我误解了您想做的事情。 下面是一个遍历范围的示例,满足条件后,将在循环中的当前行下方插入一行。 然后需要一个布尔值才能跳过插入的行。

Sub InsertAfterLastRow()
    Dim Rng As Range
    Set Rng = Range("A1:B5") 'Arbritrary
    Dim LastRow As Long
    Dim InsertRow As Long
    Dim Inserted As Boolean
    Dim NewRow As Range

    Inserted = False

    For Each Row In Rng.Rows
        If Inserted = False Then
            If Row.Cells(1, 1).Value = "Yes" Then
                    Rows(Row.Row + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                    Set NewRow = Range(Row.Row + 1 & ":" & Row.Row + 1)
                    NewRow.Cells(1, 1).Value = "Inserted"
                    Inserted = True
            Else
                Row.Cells(1, 1).Value = "No"
            End If
        Else
            'Avoid a double insert, skipping a row
            Inserted = False
        End If
    Next
End Sub

我的天啊。 愚蠢的VBA语法。 ;)

Set newRow = Rows(rowNumber + 1 & ":" & rowNumber + 1)

作品。 重要的部分是Set关键字。

我一直在与一个类似的问题作斗争,希望在参考范围(命名范围)以下的点处添加或删除可变数量的行,而不影响命名范围。 首先,我确定要添加(或删除)多少行的变量,其中包含行数= addR

addR = 2 ' you'd use some logic to derive the value of addR Rows(Range("OutputBlock").Row + 1).EntireRow.Resize(addR).insert值是我要在其中添加行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM