我用下面的代码打开了分号分隔的txt文件 保存到Excel后,无论格式化为该列的文本,长帐号都显示为科学记数法。
我在这里做错了什么?
Application.ScreenUpdating = False
Workbooks.OpenText fileName:=Filetxt, Origin:=xlWindows, StartRow _
:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False, Local:=True, _
FieldInfo:=Array(Array(1, 4), Array(2, xlTextFormat)
'Save text file as csv file
Set wb = ActiveWorkbook
Application.DisplayAlerts = False
wb.SaveAs fileName:=fileXls, FileFormat:=6, _
ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True
wb.Close savechanges:=True
txt文件中的记录如下所示: 2011-12-21; 100,00; “21375000120000010020601764”
当我打开新保存的文件时,我看到2.117500012E + 25而不是那个号码。 这有什么不对?
答案 0 :(得分:28)
我将产品导入excel文件,条形码将作为科学记数法出现(例如5.4265E + 12)
这意味着当我将文件转换为csv文件以上传详细信息时,csv无法正确读取条形码并将其更改为52862300000等。
打击它:
这应该将它们全部转换为长号显示。然后,您可以将其保存为CSV文件,并且不会将数字转换/格式化为科学数字。
希望这会有所帮助!!
答案 1 :(得分:3)
在Excel中,数字限制为15位精度。您的示例数字太大,Excel无法准确表示 - 这可能解释了转换为科学记数法。
您应该将该列作为文本导入Excel,而不是数字:那么您将不会失去任何精度。
编辑:如果您在录制宏时单步执行“从文本打开”过程,您应该得到以下内容:
Workbooks.OpenText Filename:= Filetxt, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 5), Array(2, 1), _
Array(3, 2)), TrailingMinusNumbers:=True
该流程中有一个步骤,允许您选择每列中的数据类型。
我认为您的“FieldInfo”参数有点偏离:您应该有3列,但您已将col2标记为文本...
答案 2 :(得分:2)
不要直接在 Excel 中打开文件,而是使用
Data --> From text
并使用向导将列的类型指定为文本。
答案 3 :(得分:1)
我的系统是mac os X El Capitan,当我从html表复制数据到Excel时,当我将“单元格格式”更改为文本时,数字总是自动转换为1.10101E + 17等。数字不正确。< / p>
我的决心是:
我不知道为什么,但它对我有用。
答案 4 :(得分:1)
在数字前插入撇号。这会强制Excel显示整数。
答案 5 :(得分:0)
您似乎正在使用文本文件作为输入。步骤:
- 转到单元格A1
- 文件->打开->选择.txt文件->打开
- 文本导入向导将打开。根据您的输入文件格式执行步骤1和2。对于第三步,请执行以下操作:
- 使用鼠标选择适合您的情况的列,该列会让您头疼,帐号太长。在“列数据格式”下,选择 “文本”单选按钮,然后单击“完成”。
您会很好。
答案 6 :(得分:0)
选择要更改其穿孔的单元格:
'Example:
Columns("A:E").Select
Selection.NumberFormat = "0.00"
Selection.NumberFormat = "0.0"
Selection.NumberFormat = "0"
'The exponential or scientific notation will be converted
答案 7 :(得分:0)
我有一个适用于我的解决方案,其中带有分隔的文本文件标签。
在记事本等中打开文本文件。
使用Ctrl-A和Ctrl-C,然后按Ctrl-V将文本文件复制到空白页中。
请注意所有看起来科学的列。
然后按Ctrl-Z(撤消)。现在,您应该有一个空白工作表。
突出显示您之前记下的所有列(按住Ctrl键并单击每个列标题)。
将格式更改为文本
单击第一个单元格,然后再次按Ctrl-V。