在我的一个程序中,我需要计算一系列数字的平均值。问题是,有时答案会出现一个巨大的小数,我需要尝试将其降低到最多两位小数。
我见过一种名为Excel.WorksheetFunction.Round(...)
的东西,但据我所知它只适用于特定的数字或特定的细胞。我想知道是否有人知道如何实现这一点,以便它将在一系列单元格中舍入所有小数。
Excel.WorksheetFunction.Round(ActiveSheet.Range(g_first_Function_Col & "2:" & g_first_Function & g_totalRow).Select, 2)
上面的代码尝试在一系列单元格上使用round函数。 g_first_Function_Col是一些列(如列“H”),g_totalRow是其中包含任何值的最后一行。当我尝试运行这段代码时,它告诉我“=”预期。基本上我正在尝试选择整个列并将其四舍五入。
谢谢,
Jesse Smothermon
答案 0 :(得分:8)
有两种方法可以做到。
- 选择您的范围并更改数字格式:
Range("myrange").Select
Selection.NumberFormat = "0.00"
- 遍历范围内的所有单元格,并将Round函数应用于每个单元格。在VBA中,您无法一次在整个范围内使用Round函数。
For Each currentcell In myRange
currentcell.Value = Math.Round(currentcell.Value, 2)
Next
(上面的伪代码;你需要一个更好的For..Next循环来遍历你范围内的所有单元格。)