循环读取一系列单元格

在使用 Visual Basic 时,经常需要在一系列单元格中的每个单元格上运行相同的语句块。 为此,将循环语句和一个或多个方法合并,用于标识每个单元格(一次一个)并运行操作。

在单元格区域中循环的一种方法是将 For...Next 循环语句与 Cells 属性配合使用。 使用 Cells 属性,可以替换单元索引编号的循环计数器(或其他变量或表达式)。 在以下示例中,为行索引替换了变量 counter。 该过程将循环读取区域 C1:C20,并将绝对值小于 0.01 的任何数字设置为 0(零)。

Sub RoundToZero1() 
 For Counter = 1 To 20 
 Set curCell = Worksheets("Sheet1").Cells(Counter, 3) 
 If Abs(curCell.Value) < 0.01 Then curCell.Value = 0 
 Next Counter 
End Sub

在单元格区域中循环的另一种简便方法是使用 For Each...Next 循环语句和由 Range 属性指定的单元格集合。 在每次循环运行时,Visual Basic 自动为下一个单元格设置对象变量。 以下过程将循环读取区域 A1:D10,并将绝对值小于 0.01 的任何数字设置为 0(零)。

Sub RoundToZero2() 
 For Each c In Worksheets("Sheet1").Range("A1:D10").Cells 
 If Abs(c.Value) < 0.01 Then c.Value = 0 
 Next 
End Sub

如果不知道要循环的单元格区域的边界,可用 CurrentRegion 属性返回活动单元格周围的区域。 例如,在工作表中运行以下过程时,将循环读取活动单元格周围的区域,并将绝对值小于 0.01 的任何数字设置为 0(零)。

Sub RoundToZero3() 
 For Each c In ActiveCell.CurrentRegion.Cells 
 If Abs(c.Value) < 0.01 Then c.Value = 0 
 Next 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。