重新打开.csv文件更改0.000E + 00数字格式的值

我有一个提取数据的excel文件,工作表中的A列是一个12位数的数字,在该列中保存为文本。 见下文

[ 1]

此外,我有一个macros的构build,因为这个文件将以.csv格式上传到网上,这也需要很less的格式化。 列转换为0.000E + 00格式并保存为.csv

下面的macros完成所需的格式并将数字完美地转换为0.000E + 00。 但是,当我重新打开.csv文件再次数字被改变

Sub ECRformat() Dim LR1 As Long Dim LC1 As Long Dim rng As Range Application.ScreenUpdating = False Application.DisplayAlerts = False Workbooks.Open Filename:="C:\Users\Apple\Desktop\Salary software - Parikh constructions\Base files shared\ECR-WebUpload.xlsx" Windows("ECR-WebUpload.xlsx").Activate Sheets("ECR").Select Rows("1:1").Select Selection.Delete Windows("ECR-WebUpload.xlsx").Activate Sheets("ECR").Select LR1 = ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LC1 = ActiveSheet.Range("A1").CurrentRegion.Columns.Count Set rng = Range(Cells(1, 1), Cells(LR1, 1)) rng.Select With Selection .NumberFormat = "0.000E+00" .value = .value End With Range("A1").Select ActiveWorkbook.SaveAs Filename:="C:\Users\Apple\Desktop\Salary software - Parikh constructions\Base files shared\ECR-WebUpload.csv", _ FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Save ActiveWindow.Close End Sub 

例如:当保存为.csv ,100199847300转换为1.002E + 11 当我重新打开.csv文件时,数值变为1.00E + 11,并显示100200000000。

编辑:把所有以前的编辑成一个,并澄清的事情。 (感谢亚当让我意识到我不清楚。)

这就是Excel导入.csv时的行为方式。 它将存储为文本的“数字”转换为实数,然后以它认为最好的方式显示它们。 (12位数字是科学记数法。)

如果要以不同的方式显示,则每次重新打开文件时都必须重新格式化数字。

如果你想要非科学的符号使用:

 .NumberFormat = "0" 

或者用整个小数位数来表示科学记数法:

 .NumberFormat = "0.00000000000E+00" 

但是,如果您想保存 .csv,您必须将显示数字格式设置为"0"否则Excel将循环显示四个*重要位置! 使用数字格式"0.00000000000E+00"不会导致四舍五入,但导致数字以科学计数法存储

对于您的特殊情况,由于原始Excel文件中的数字以文本forms存储,您只需打开该文件并“另存为”一个.csv文件,以避免发生舍入。 根本不需要运行macros。

之后,.csv的行为将与您期望的一样,即在Excel中显示为科学记数法,同时在记事本中显示真正的非科学值。 如果您不再将Excel文件中的.csv文件保存在Excel中,而不将数字格式更改为"0"


*四是用于Excel使用的默认科学记数法。 如果使用自定义科学记数法数字格式,则用于舍入的有效数字的数目直接对应于该格式。 数字也以科学记数法存储。

所以每个人都在说:“这就是Excel遇到一个数字时的行为方式”。 澄清..

在默认情况下,Excel会以科学计数法显示您的12位数字,就像inputurl一样,会将您的string显示为超链接。

NumberFormat是值的可视表示。

CSV文件存储逗号分隔值,就是这样。 您无法应用数字格式并将该数字格式保存为CSV文件。

如果您必须应用数字格式,则必须将其另存为Excel文件以保留格式。

否则,您必须将单元格的VALUE编辑为科学记数法并将其另存为CSV。

一个方法来完成这个是

  1. CUT(CTRL-X)将您的数字显示为科学记数法

  2. 将单元格设置为文本

  3. 粘贴到记事本中

  4. 然后将其粘贴回Excel。

  5. 另存为CSV

结果:在记事本中打开CSV文件时,您现在有了科学记数法。

如果您find更好的方法,请在下面评论。