在Excel中更改数据

我很难理解为什么在打开文本文件时,包含文本文件数据的excel更改

比方说,我有一个改变了扩展名“mydata.xls”的文本文件,其中包含以下几行:

01E0 01E1 

当我用excel打开它时,会得到如下结果:

 1,00E+00 1,00E+01 

有什么办法可以避免这种情况?

我宁愿vba解决这个问题。

更新1

贝娄是一个文本文件的片段:

  Ordr MaterialS Description System Stat Version Tgt qty Bsc start Basic fin. 9531422 1140413 NALSARTTING IECHO RL MSYT PCZF* 01E1 2.400 26.10.2015 01.11.2015 21531847 1201013 XALWARTTING IECHOO RL PCYF PRC ASG AAGS APRS BASC BCRQ* 01E1 25.500 26.10.2015 02.10.2015 412714199 4443247826 FOKSAMAT CETZ MSPT PEC APG APGS APRS BYRQ PUMN* 0101 4.250 02.11.2015 09.11.2015 

编码在UCS-2 Little Endian中。

贝娄是我用来打开文件的vba代码:

 Workbooks.OpenText fileName:=path, Tab:=True, ThousandsSeparator:=".", DecimalSeparator:="," Set openWb = ActiveWorkbook 

这是另一个例子:

  0100 goes to 100 0101 goes to 101 0102 goes to 102 0103 goes to 103 

所以我认为文件是制表符分隔,并有8列和4.列是“系统状态”与内容01E1。

在这里输入图像说明

我会build议采取以下方法:

让VBA插入一个新的工作表,然后在该工作表中查询表。 有了这个,我们有更多的控制列types。 然后,刷新QueryTable后,从该工作表中获取内容,如果完成,则删除该工作表。

 Sub Makro1() Dim oQueryTable As QueryTable Set oSheet = ThisWorkbook.Worksheets.Add Set oQueryTable = oSheet.QueryTables _ .Add(Connection:="TEXT;C:\Users\axel\Desktop\mydata.xls", _ Destination:=oSheet.Cells(1, 1)) With oQueryTable .Name = "mydata" .TextFileParseType = xlDelimited .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(xlGeneralFormat, xlGeneralFormat, xlGeneralFormat, xlTextFormat, xlGeneralFormat, xlGeneralFormat, xlDMYFormat, xlDMYFormat) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With 'from here on the code which gets the data from oSheet 'oSheet.Delete End Sub 

注意.TextFileColumnDataTypes = Array(xlGeneralFormat, xlGeneralFormat, xlGeneralFormat, xlTextFormat, xlGeneralFormat, xlGeneralFormat, xlDMYFormat, xlDMYFormat)它描述了8列中每一列的内容types。 我将第4列设置为文本内容。 所以它不会被解释为指数表示法中的数字。

结果:

在这里输入图像说明