我有一个csv文件,其中包含成千上万条类似于文件的这两行的记录:
TransferWise NZ "6400518" "996467362814" "Failed" "P2569534" "30/11/2019 9:54:27 PM"
Growth Collective "SS64007605" "996467363128" "Completed" "X255536" "30/11/2019 10:07:49 PM"
在Excel中打开时,这些记录中的每条记录都占据一个电子表格列。
初始字段(公司名称)缺少双引号。如果可以避免,我真的不想手动浏览此文件并添加双引号。有没有一种方法可以在Excel中以编程方式完成?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要解决您在Excel中遇到的问题,即CSV文件中的某些字段缺少双引号导致数据未能正确对齐到列,您可以采用以下步骤在Excel中以编程方式(使用VBA宏)自动为缺失的双引号进行补全:
打开Excel并启用开发者选项:
插入VBA代码:
Sub AddMissingQuotes()
Dim currentCell As Range, lineText As String, splitLine() As String
Dim i As Long, quoteCount As Long, outputLine As String
' 从第一行开始遍历每一行
For Each currentCell In ActiveSheet.UsedRange.Rows(1).Cells
lineText = currentCell.Value
' 分割文本,检查是否每个元素都被双引号包围
splitLine = Split(lineText, """")
quoteCount = UBound(splitLine) + 1 ' 计算双引号数量
' 如果双引号数量是奇数,则表示有字段缺失双引号
If quoteCount Mod 2 <> 0 Then
' 添加开头的双引号
outputLine = """" & lineText
' 检查并添加每个逗号后的双引号,除了最后一个元素
For i = 1 To UBound(splitLine) - 1 Step 2
outputLine = outputLine & splitLine(i) & ""","""
Next i
' 添加结尾的双引号和当前单元格的剩余内容
outputLine = outputLine & splitLine(UBound(splitLine)) & """"
' 更新单元格的值
currentCell.Value = outputLine
End If
Next currentCell
End Sub
此VBA宏会遍历您当前工作表的第一行(假设标题行没有问题),检查每个单元格的文本,如果发现双引号数量为奇数,则说明至少有一个字段缺失了开头或结尾的双引号。宏会自动为这些字段添加缺失的双引号,并保持原有数据的完整性。请确保在执行此操作前备份您的原始数据,以防意外情况发生。