循环读取一系列单元格
在使用 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。