我打开分号分隔的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; 21375000120000010020601764
当我打开新保存的文件时,我看到的是2.117500012E+25,而不是那个数字。怎么了?
9条答案
按热度按时间slwdgvem1#
我正在将产品导入Excel文件,条形码将以科学记数法出现(例如5.4265E+12)
这意味着当我将文件转换为csv文件以上传详细信息时,csv无法正确阅读条形码并将其更改为52862300000等。
为了与之作斗争:
这应该将它们全部转换为显示为长数字。然后,您可以将其保存为CSV文件,并且数字不会被转换/格式化为科学数字。
希望这有帮助!!
q8l4jmvw2#
不直接在Excel中打开文件,而是使用
Data --> From Text/CSV
并使用向导将列的类型指定为文本。
在数据类型检测下拉框中,选择
Do not detect data types
a6b3iqyw3#
在Excel中,数字的精度限制为15位。您的示例数字太大,Excel无法准确表示-这可以解释转换为科学计数法的原因。
您应该将该列作为文本导入Excel,而不是数字:你就不会失去任何精确度。
编辑:如果你在录制宏的时候执行“从文本打开”的过程,你应该会得到这样的东西:
在这个过程中有一个步骤,允许您选择每列中的数据类型。
你的“FieldInfo”参数有点不对:你应该有3列,但是你把col 2标记为文本…
lnvxswe24#
在数字前插入撇号。这将强制Excel显示整数。
o4tp2gmn5#
我的系统是Mac OS X El Capitan,当我从HTML表复制数据到Excel时,数字总是自动转换为1.10101E+17等。当我改变“单元格格式”为文本,数字是不正确的。
我的决心是:
1.打开Mac os软件“Numbers”并创建一个新选项卡
1.将数据复制到选项卡,您将看到正确的数字
1.打开Microsoft Excel更改数字列“单元格格式”为文本
1.从数字选项卡复制数据;
1.右键单击“可选粘贴”,选择“文本”并确定。
我不知道为什么,但它为我工作。
xtfmy6hx6#
我有一个解决方案,我的作品与文本文件制表符分隔。
在记事本等中打开文本文件。
用Ctrl-A和Ctrl-C然后Ctrl-V将文本文件复制到空白工作表中。
注意所有看起来科学的列。
然后按Ctrl-Z(撤消)。您现在应该有一个空白的工作表。
高亮显示之前记录的所有列(按住Ctrl键并单击每个列标题)。
将格式更改为文本
单击第一个单元格并再次按Ctrl-V。
8nuwlpux7#
它看起来像你正在使用一个文本文件作为输入。步骤:
1.转到单元格A1
1.文件->打开->选择.txt文件->打开
1.将打开文本导入向导。根据输入文件格式执行步骤1和2。对于第三步,请执行以下操作:
1.使用鼠标选择让您头痛的列,在您的情况下,长帐号。在“列数据格式”下选择“文本”单选按钮,然后单击完成。
你就可以走了。
ve7v8dk28#
选择要更改格式的单元格:
n53p2ov09#
使用导入并选择不检测类型。否则,您的数字将被截断,并填写0时转换为文本