EXCEL 如何用 VBA 或者 函数来控制excel单元格“显示”的小数位数?

我知道round可以四舍五入,也知道可以调节数据格式可以自动四舍五入并控制显示的位数。但这两个搭配起来有缺陷:

数据格式保留小数位数是固定的,不能自动调整,而我的是动态的,要求一整列都有统一的小数位数(比如A1:E10),且需要保留的“小数的位数”,已经确定好保存在其他单元格里(比如 区域A11:E11,分别为1,2,3,4,5,表示保留1位,2位,3位,4位,5位,但他们不是固定的,是会随数据变化的)。

而round函数,显然可以保留小数位数,但不能改变显示的格式。所以显示起来该是几位还是几位(主要是会舍掉小数点后面的0)。这样不能满足我的要求,因为后续我要拷贝到word中去。我需要所有显示的数字都有相同的位数。

VBA,好像有NumberFormatLocal命令,但是后面跟的是字符串不是数字,我不知道这其中怎么转换,我对VBA不熟。

不知道有没有高手知道这个问题怎么解决,excel小数问题太头疼了,我真的要跪了。

在VBA中可以利用下面的代码来控制当前单元格“显示”的小数位数:
Selection.NumberFormatLocal = "0.00_ "'这里显示为2位小数

关于此处的numberformatlocal属性:
应用于 CellFormat、DataLabel、DataLabels、Range 和 TickLabels对象的 NumberFormatLocal属性。
以用户语言字符串返回或设置对象的格式代码。Variant 类型,可读写。
expression.NumberFormatLocal
expression 必需。该表达式返回上面的对象之一。

说明:
Format函数使用与 NumberFormat 和 NumberFormatLocal属性不同的格式代码字符串。
温馨提示:答案为网友推荐,仅供参考