如何在Excel VBA中获取“单元格”对象

所以我使用了每个循环来通过一堆行。 我碰到一个问题,我删除行,这是导致一个行被跳过,所以我已经改变了做while while循环。

我遇到的问题是试图获得一个“细胞”的对象。 之前当我有:

For Each C In Worksheets("Blah").Range("A2:A" & lastRow).Cells 

我可以做类似的事情

 C.Offset(1, 0) C.Value = "Troy" 

等我尝试使用:

 C = Worksheets("Blah").Cells(iRow, 2) 

但是这只是给了C的价值。 我如何得到实际的细胞对象?

谢谢

删除行时,最好从下往上。 你特别的问题是,你需要Set关键字来设置C的范围对象,而不是让“让”C范围值。 Range有一个默认属性Value,当你省略一个属性时,就是使用的属性。 因此,分配对象variables时必须使用Set。 下面是一个向后循环删除行和分配对象variables的例子。

 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