我需要将excel中的列转换为Excel文档中的General中的Number(Integer)数据类型。
我从外部系统获取数据,显示为“1E + 14”,需要将其更改为“100000000486422”。
答案 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
应该解决您遇到的任何时间延迟(也称为循环)问题,但可能存在更大的潜在问题。回复后,您将继续遇到任何问题。