Zul*_*u Z 14 excel vba 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
Run Code Online (Sandbox Code Playgroud)
在txt文件中记录如下:2011-12-21; 100,00;"21375000120000010020601764"
当我打开新保存的文件时,我看到2.117500012E + 25而不是那个号码.这有什么不对?
小智 31
我将产品导入excel文件,条形码将作为科学记数法出现(例如5.4265E + 12)
这意味着当我将文件转换为csv文件以上传细节时,csv没有正确读取条形码并将其更改为52862300000等.
打击它:
这应该将它们全部转换为长数字.然后,您可以将其另存为CSV文件,并且不会将数字转换/格式化为科学数字.
希望这可以帮助!!
pet*_*tra 10
不要直接在 Excel 中打开文件,而是使用以下命令导入文件
Data --> From Text/CSV
并使用向导将列的类型指定为文本。
在“数据类型检测”下拉框中,选择Do not detect data types
在 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
Run Code Online (Sandbox Code Playgroud)
该过程中有一个步骤允许您选择每列中的数据类型。
我认为你的“FieldInfo”参数有点偏离:你应该有 3 列,但你已将 col2 标记为文本......
| 归档时间: |
|
| 查看次数: |
49373 次 |
| 最近记录: |