VBA圆形功能

Jes*_*mon 8 excel vba rounding

在我的一个程序中,我需要计算一系列数字的平均值.问题是,有时答案会出现一个巨大的小数,我需要尝试将其降低到最大两位小数.

我见过一些叫做的东西Excel.WorksheetFunction.Round(...)但据我所知它只适用于特定的数字或特定的细胞.我想知道是否有人知道如何实现这一点,以便它将在一系列单元格中舍入所有小数.

Excel.WorksheetFunction.Round(ActiveSheet.Range(g_first_Function_Col & "2:" & g_first_Function & g_totalRow).Select, 2)
Run Code Online (Sandbox Code Playgroud)

上面的代码试图在一系列单元格上使用round函数.g_first_Function_Col是一些列(如列"H"),g_totalRow是其中包含任何值的最后一行.当我尝试运行这段代码时,它告诉我"="预期.基本上我正在尝试选择整个列并将其四舍五入.

谢谢,

杰西斯莫瑟蒙

Ste*_*bob 8

有两种方法可以做到这一点.

- 选择您的范围并更改数字格式:

Range("myrange").Select
Selection.NumberFormat = "0.00"
Run Code Online (Sandbox Code Playgroud)

- 遍历范围内的所有单元格,并将Round函数应用于每个单元格.在VBA中,您无法一次在整个范围内使用Round功能.

For Each currentcell In myRange
    currentcell.Value = Math.Round(currentcell.Value, 2)
Next
Run Code Online (Sandbox Code Playgroud)

(上面的伪代码;你需要一个更好的For..Next循环来遍历你范围内的所有单元格.)