excel - Excel 打开 CSV 文件并将小数截断为有效数字
问题描述
我正在打开一个看起来像这样的 CSV 文件,
24.0000,19.2500,4.0000,0.7500,
Excel 仅显示有效数字的以下截断值。
24 | 19.25 | 4 | 0.75
但我需要保留小数点后 4 位(即使微不足道)。是否可以以某种方式将我的 CSV 保留为自动文本,而不是数字,以便在 Excel 中显示?即使我尝试在值周围加上引号"4.0000
,它仍然会被截断。
我在 CSV 中尝试了这些选项以使其读取为文本:
4.000[space]
"4.000 "
这些都不起作用。唯一有效的是非数字,
4.000a
所以 Excel 将所有数字字段识别为数字,并强制截断,除非它看到非数字?
解决方案
尝试
Sub test()
Dim Wb As Workbook
Dim Path As String, Fn As String
Dim Filename As String
Dim txtFree As Long
Dim vS As Variant, v As Variant
Dim vDB(1 To 1000, 1 To 100) As String
Dim r As Long, c As Integer
Path = ThisWorkbook.Path & "\"
Filename = "csvtest.csv" '<~~ your csv filename
Fn = Path & Filename
txtFree = FreeFile()
Open Fn For Input As #txtFree
Do While Not EOF(txtFree)
Line Input #txtFree, Fn
vS = Split(Fn, ",")
r = r + 1
c = 0
For Each v In vS
c = c + 1
vDB(r, c) = v
Next v
Loop
Range("a1").Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB
End Sub
结果图像
推荐阅读
- python - 我正在尝试制作我的骰子游戏,而不是每次滚动都改变骰子的一个数字,而是改变所有骰子
- java - 如何使用 Spring Data Jpa 将域实体对象写入多个数据库表?
- php - 如何进行sql备份?
- python - Scipy最小化不考虑约束
- python - 如何在谷歌日历 api 中检查事件是否已完成
- java - 如何以编程方式单击其他活动按钮
- automated-tests - 在 beforeEach 中使用异步时,测试中的所有操作都会触发两次
- angular - Angular PrimeNG 列表框交叉标签
- php - 在 Laravel 中更新模型关系
- ruby-on-rails-3 - 模型的覆盖方法