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是其中包含任何值的最后一行.当我尝试运行这段代码时,它告诉我"="预期.基本上我正在尝试选择整个列并将其四舍五入.
谢谢,
杰西斯莫瑟蒙
有两种方法可以做到这一点.
- 选择您的范围并更改数字格式:
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循环来遍历你范围内的所有单元格.)
| 归档时间: |
|
| 查看次数: |
19843 次 |
| 最近记录: |