重新打开.csv文件更改0.000E + 00数字格式的值
我有一个提取数据的excel文件,工作表中的A列是一个12位数的数字,在该列中保存为文本。 见下文
[
此外,我有一个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。
一个方法来完成这个是
-
CUT(CTRL-X)将您的数字显示为科学记数法
-
将单元格设置为文本
-
粘贴到记事本中
-
然后将其粘贴回Excel。
-
另存为CSV
结果:在记事本中打开CSV文件时,您现在有了科学记数法。
如果您find更好的方法,请在下面评论。