excel - 如何在 excel 中设置自定义第一个分隔符,然后使用标准分隔符
问题描述
我正在尝试创建一个将自动进行对帐过程的 Excel 工作簿,但遇到了一个我无法克服的问题。
初始输入文件是逗号分隔的 CSV 文件。问题是一些条目有额外的逗号,所以当我对列进行文本处理时,一些单元格的内容不正确。第一列之后的下一个单元格中有文本,所以我试图找到一种方法将其用作分隔符。以下是条目的外观:
第一行:a、b、c、d(总是用逗号分隔,因此代码中的部分分开) 第二行(90% 的情况下):a、b、c、d 第二行(10% 的情况下):a1、 a2, b, c, d
上一行中的 B 是一个文本并带有引号,因此看起来像“b”。
有没有办法将文本调整为列以使其正常工作?
这是我到目前为止整理的代码:
Sub ExampleSplit1()
Range("A1").TextToColumns _
Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=True, _
Semicolon:=False, _
Comma:=True, _
Space:=False, _
Other:=False, _
OtherChar:="-"
Range(Range("A2"), Range("A2").End(xlDown)).TextToColumns _
Destination:=Range("A2"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Tab:=True, _
Semicolon:=False, _
Comma:=True, _
Space:=False, _
Other:=False, _
OtherChar:="-"
End Sub
我希望最终结果如下所示:
解决方案
@Frank Ball 建议的帖子有适合我的解决方案。下面是代码
Sub CSV_Import()
Dim ws As Worksheet, strFile As String
Set ws = ActiveWorkbook.Sheets("Sheet1") 'set to current worksheet name
strFile = Application.GetOpenFilename("Text Files (*.csv),*.csv", , "Please select text file...")
With ws.QueryTables.Add(Connection:="TEXT;" & strFile, Destination:=ws.Range("A1"))
.TextFileParseType = xlDelimited
.TextFileCommaDelimiter = True
.Refresh
End With
End Sub
推荐阅读
- javascript - 如何将 Twilio 视频室流式传输到数千人?
- html - 如何修复链接 wordpress?
- http - LinkedIn API 人员搜索
- javascript - 如何在视频播放之前停止猫头鹰轮播自动播放
- amazon-cloudformation - 限制 AWS 身份池仅访问单个 Lambda
- html - 如何为背景图像的不透明度设置动画?
- powershell - Get-Acl:无法验证参数“路径”上的参数
- variables - 天蓝色管道选项选择器脚本
- c++ - 头文件包含的奇怪行为
- ubuntu - 使用“conjure-up”构建单节点 Kubernetes 集群后,如何使用公共 IP 地址访问它?