excel - 如何使用 VBA 打开格式错误的 csv?
问题描述
我有一个 27513 行的 CSV 文件,有时它不应该有逗号。
如果我通过双击 Windows 资源管理器中的 csv 文件在 Excel 中打开文件,Excel 会设法正确格式化它,即使某些单元格的文本中有逗号。
如果我使用典型的 VBA 代码来导入 csv 文件,这些错误不会得到修复。
Option Explicit
Private uri As String
Private ws As Worksheet
Private Sub btnUpload_Click()
shtRawData.Activate
Set ws = ActiveWorkbook.Sheets("RawData") 'set to current worksheet name
uri = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please select text file...")
With ws.QueryTables.Add(Connection:="TEXT;" & uri, Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
End Sub
我知道上面的代码没有被破坏。
我也理解 csv 格式错误,应该使用不同的分隔符,无论是双引号、制表符还是笑脸表情符号。
当您双击 csv 文件并打开它时,Excel 会执行更多操作。
Excel 做了什么来正确猜测(至少在这种情况下)文件的正确格式,以及 VBA 如何做到这一点?
解决方案
解决方案是简单地使用workbooks.open
. 无论魔术 excel 做什么,都可以在这个函数中捕捉到。
推荐阅读
- opengl-es - 渲染独立骨骼
- mysql - 当其他表中不存在时更新列[大数据集]
- twitter-bootstrap - bootstrap 5 中的 grid-cols-* 实用程序在哪里?
- r - 如何从 JupyterLab 中的现有 R 项目加载 .Rprofile 和 .Renviron 文件?
- linux - RPi 零 W 看门狗不启动
- python - ValueError:演员 ImplicitFunc 太大(106 MiB > FUNCTION_SIZE_ERROR_THRESHOLD=95 MiB)
- git - Git 提交中似乎缺少更改
- twig - 有人可以向我解释localizeddate() 签名吗?
- javascript - 在 JavaScript 和 C# 之间传递数据的数据格式问题
- image - 如何在颤动的图像后添加按钮