导入的数字格式科学,需要一般数字

时间:2015-01-15 07:57:13

标签: excel

我需要将excel中的列转换为Excel文档中的General中的Number(Integer)数据类型。

我从外部系统获取数据,显示为“1E + 14”,需要将其更改为“100000000486422”。

1 个答案:

答案 0 :(得分:0)

如果从“外部系统”正确导出数字,那么您的列宽和/或数字格式不足以让Excel正确地显示数字。加宽列宽以容纳15位数,并使用 Number 类型的单元格编号格式或 0 的自定义数字格式。

请注意,Excel具有15位浮点精度限制,并且将“16”数字“舍入”到它认为最重要的15位数。示例:100000000486422 * 9 *变为1000000004864220。

有关详细信息,请参阅Floating-point arithmetic may give inaccurate results in Excel

修改

根据评论,我建议使用批量操作,而不是循环遍历单元格以进行单独更改。

Private Sub CommandButton1_Click()
    With ThisWorkbook.Worksheets("Sheet1")
        With .Columns("AI:AI").SpecialCells(xlCellTypeConstants, 1)
            .Cells.NumberFormat = "0"
        End With
        .Columns("AI:AI").EntireColumn.AutoFit
    End With
End Sub

应该解决您遇到的任何时间延迟(也称为循环)问题,但可能存在更大的潜在问题。回复后,您将继续遇到任何问题。