在我的一个程序中,我需要计算一系列数字的平均值。问题在于,有时答案会是一个很大的小数,而我需要尝试将其减小到最大两位小数。
我见过一种叫做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是其中包含任何值的最后一行。当我尝试运行这段代码时,它告诉我“=预期”。本质上,我试图选择整个列并将其取整。
谢谢,
杰西·斯玛特蒙
最佳答案
有两种方法可以做到这一点。
-选择您的范围并更改数字格式:
Range("myrange").Select
Selection.NumberFormat = "0.00"
-遍历您范围内的所有单元格,并对每个单元格应用Round函数。在VBA中,您一次不能在整个范围内使用舍入功能。
For Each currentcell In myRange
currentcell.Value = Math.Round(currentcell.Value, 2)
Next
(上面的伪代码;您将需要更好的For..Next循环来循环遍历范围内的所有单元格。)
关于excel - VBA舍入功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5358043/