如何在csv中将长数字导入excel,而无需在VBA中转换为科学记数法

我用下面的这段代码打开了分号分隔的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文件中logging如下所示:2011-12-21; 100,00;“21375000120000010020601764”

而当我打开新保存的文件,我看到2.117500012E + 25而不是这个数字。 这里有什么问题?

我正在将产品导入到excel文件中,条形码将作为科学记数法(例如5.4265E + 12)

这意味着当我把文件转换成csvfile upload细节时,csv没有正确读取条形码并将其更改为52862300000等。

打击它:

  • 打开Excel表格(如果不能打开,则转换成Excel表格)
  • 突出显示(条形码/科学记数法)栏
  • 进入数据/文本到列
  • 第1页:检查“分隔”/下一步
  • 第2页:检查“选项卡”,并将“文本限定符”更改为“/下一步
  • 第3页:检查“文字”而不是“一般”

这应该将它们全部转换为长数字显示。 然后,您可以将其另存为CSV文件,这些号码将不会转换/格式化为科学数字。

希望这可以帮助!!

在Excel中,数字限制在15个数字的精度。 您的示例编号太大,Excel无法准确表示 – 这可能会解释为转换为科学记数法。

您应该将该列作为文本导入Excel,而不是数字:那么您将不会失去任何精度。

编辑:如果你通过“打开文本”过程中录制一个macros,你应该得到这样的事情:

 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 

在这个过程中有一个步骤,它允许您select每个列中的数据types。

你的“FieldInfo”参数有点偏离,我想:你应该有3列,但你已经把col2标记为文本…

我的系统是Mac OS X EI Capitan,当我把数据从html表格复制到Excel时,当我将“单元格格式”更改为文本时,数字总是自动转换为1.10101E + 17等,数字不正确。

我的决心是:

  1. 打开Mac OS软件“Numbers”并创build一个新选项卡
  2. 将数据复制到选项卡,您将看到正确的号码
  3. 打开Microsoft Excel的更改编号列“单元格格式”为文本
  4. 从数字选项卡复制数据;
  5. 右键单击“可选粘贴”select文本并确定。

我不知道为什么,但是这对我有用。