Excel VBA - 对范围内的每个单元格执行功能

时间:2012-01-16 19:15:23

标签: excel-vba range vba excel

假设我有一个名为rng1

的范围
Set rng1 = Worksheets("Sheet1").Range("A1","A5")

是否有一种快速简便的方法来执行数学函数,让我们说对于rng1中的所有单元格,将所有这些单元格值除以2?

感谢任何帮助!

2 个答案:

答案 0 :(得分:15)

这很简单,但最终的代码将取决于您希望存储新值的位置。例如,如果要在下一列中存储除以2的值:

Sub test()

Dim cell As Range

For Each cell In Range("A1:A5")
    cell.Offset(, 1).Value = cell.Value / 2
Next

End Sub

请注意,如果您的范围较大,则使用偏移比使用偏移有更有效的方法,但对于较小的范围,这是完全可以接受和快速的。

如果您要覆盖这些值,只需使用cell.Value代替cell.Offset(,1).Value

答案 1 :(得分:2)

另一种方式

Sub Main()
    [B1:B5] = [INDEX((A1:A5/2),)]
End Sub

它的工作原理得到了很好的解释here.