如何在excel VBA中获取"Cell"对象

Tro*_*ino 11 excel vba

所以我在每个循环中使用a来遍历一堆行.我遇到了一个问题,我正在删除行,它导致一行被跳过,所以我已经改为do while循环.

我遇到的问题是试图获得一个"细胞"对象.之前我有:

For Each C In Worksheets("Blah").Range("A2:A" & lastRow).Cells
Run Code Online (Sandbox Code Playgroud)

我可以做的事情

C.Offset(1, 0)
C.Value = "Troy"
Run Code Online (Sandbox Code Playgroud)

等我试过用:

C = Worksheets("Blah").Cells(iRow, 2)
Run Code Online (Sandbox Code Playgroud)

但这只是给了C单元格的值.我如何获得实际的细胞对象?

谢谢

Dic*_*ika 18

删除行时,最好从下往上.您的特定问题是您需要Set关键字将C设置为范围对象,而不是将"Let"C设置为范围Value.Range有一个默认属性Value,当你省略属性时使用的属性.因此,在分配对象变量时必须使用Set.这是一个向后循环以删除行和分配对象变量的示例.

Sub DeleteRows()

    Dim i As Long
    Dim rRng As Range
    Dim rCell As Range

    Set rRng = Sheet1.Range("A1:A9")

    For i = rRng.Rows.Count To 1 Step -1
        Set rCell = rRng.Cells(i, 1)
        If rCell.Value Mod 2 = 1 Then
            rCell.EntireRow.Delete
        End If
    Next i

End Sub
Run Code Online (Sandbox Code Playgroud)