Henk询问Excel中是否有一种方法可以使用六位数字显示数字,而与小数点的位置无关。例如,0.1将显示为0.10000,200将显示为200.000,25000将显示为25000.0。

不幸的是,没有格式可以解决问题。所有显示格式似乎都取决于小数点的位置。您可以设置显示格式为小数点后的特定位数,但是无论小数点前出现多少位数,都将使用该位数。

几个_ExcelTips_订阅者提出了一些建议,其中涉及使用公式显示所需的数字。例如,以下公式将使用六位数字显示A1中的值:

=FIXED(A1,IF(ABS(A1)<1,5,5-INT(LOG(ABS(A1)))),TRUE)

其他读者提供了一些公式,这些公式依赖于将数字转换为文本字符串并以此形式显示。但是,将数字转换为文本等效项具有明显的缺点,即不再能够在其他公式中使用该数字。 (请记住,这是文本,不是数字。)上式没有此限制。

如果需要,还可以使用宏在包含值的单元格中设置格式。这样的宏的优点是您不必为公式使用单元格,如上所示。宏的缺点是,只要它们中的值发生更改,就需要记住在单元格上运行它。以下宏是这种方法的示例:

Sub SetFigures()

Dim iDecimals As Integer     Dim bCommas As Boolean     Dim sFormat As String     Dim CellRange As Range     Dim TestCell As Range

bCommas = False 'Change as desired

Set CellRange = Selection     For Each TestCell In CellRange         If Abs(TestCell.Value) < 1 Then             iDecimals = 5         Else             iDecimals = 5 - Int(Log(Abs(TestCell.Value)) / Log(10#))

End If

sFormat = "0"

If bCommas Then sFormat = "#,##0"

If iDecimals < 0 Then sFormat = "General"

If iDecimals > 0 Then sFormat = sFormat & _           "." & String(iDecimals, "0")



TestCell.NumberFormat = sFormat     Next TestCell End Sub

为了使用宏,只需选择要格式化的单元格,然后执行它即可。所选范围内的每个单元格都设置为显示六位数字,除非该单元格中的数字太大或太小。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(10920)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: