【问题标题】:Remove double quotations using vba使用 vba 删除双引号
【发布时间】:2018-01-29 16:21:33
【问题描述】:

我有一个如下的文本文件

"asdf","dfgv","asd","sdgs"
"sfgf","xcbvcvb","gsfgf","sdvxc"
"asfdfg","fbgdfg","sdfsd","fdg"
"bdg","sdf","fgfdg","fcg"
"sdf","fbcx","ckvknm","fklf"
"xv","asds","r","cxv"

但我想要这样的输出

asdf,dfgv,asd,sdgs
sfgf,xcbvcvb,gsfgf,sdvxc
asfdfg,fbgdfg,sdfsd,fdg
bdg,sdf,fgfdg,fcg
sdf,fbcx,ckvknm,fklf
xv,asds,r,cxv

我浏览了以下链接并将代码从 Write #1 更改为 Print #1。但问题是,我希望将这个文件批量插入到 sql server 中。因此,使用打印对我没有帮助。 Remove double quotation from write statement in vba

【问题讨论】:

  • 在几乎任何文本编辑器中,您都可以通过按 Ctrl+H 进行搜索和替换,将其设置为“查找”并将替换留空。这比编写代码更快,除非您需要执行多个文件它。

标签: excel vba


【解决方案1】:

您可以使用Replace 函数去除所有引号字符:

result = Replace(original_string, string_you_want_to_remove, replace_with )

example = Replace(original_string , CHR(34), "")

【讨论】:

    【解决方案2】:

    谢谢大家,但我找到了另一种使用批处理脚本删除双引号的方法,如下所示。

    set objRe = new RegExp
    objRE.Pattern = "\"""
    objRE.Global  = True
    strFileName = "Source.txt"
    set objFS = CreateObject("Scripting.FileSystemObject")
    set objTS = objFS.OpenTextFile(strFileName)
    strFileContents = objTS.ReadAll
    objTS.Close
    strNewContents = objRE.replace(strFileContents,"")
    set objWS = objFS.CreateTextFile("Results.txt")
    objWS.Write StrNewContents
    objWS.close
    

    【讨论】:

      【解决方案3】:

      只需执行 REPLACE()

      Replace(<SourceString>, """, "")
      

      【讨论】:

        【解决方案4】:

        试试这个代码:

        Sub CleanFile()
        Dim fileName, FSO, rfile, wfile As Variant
        Dim line As String, dotAt As Integer, newFileName As String
        
        fileName = Application.GetOpenFilename(, , "Load Excel File", , False)
        
        If fileName = "False" Then
            MsgBox "No file chosen"
            Exit Sub
        End If
        
        dotAt = InStrRev(fileName, ".")
        newFileName = Left(fileName, dotAt - 1) + " - CLEAN.txt"
        
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set rfile = FSO.OpenTextFile(fileName, 1) 'connection for reading
        Set wfile = FSO.OpenTextFile(newFileName, 8, True, -1) 'connection for writing
        
        Do Until rfile.AtEndOfStream
            line = rfile.ReadLine
            wfile.WriteLine Replace(line, """", "")
        Loop
        End Sub
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-12-15
          • 2020-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-25
          • 2019-08-11
          相关资源
          最近更新 更多