Stop Excel from automatically converting certain text values to dates

前端 未结 30 2985
别跟我提以往
别跟我提以往 2020-11-22 04:16

Does anyone happen to know if there is a token I can add to my csv for a certain field so Excel doesn\'t try to convert it to a date?

I\'m trying to write a .csv fil

30条回答
  •  温柔的废话
    2020-11-22 04:59

    Hi I have the same issue,

    I write this vbscipt to create another CSV file. The new CSV file will have a space in font of each field, so excel will understand it as text.

    So you create a .vbs file with the code below (for example Modify_CSV.vbs), save and close it. Drag and Drop your original file to your vbscript file. It will create a new file with "SPACE_ADDED" to file name in the same location.

    Set objArgs = WScript.Arguments
    
    Set objFso = createobject("scripting.filesystemobject")
    
    dim objTextFile
    dim arrStr ' an array to hold the text content
    dim sLine  ' holding text to write to new file
    
    'Looping through all dropped file
    For t = 0 to objArgs.Count - 1
        ' Input Path
        inPath = objFso.GetFile(wscript.arguments.item(t))
    
        ' OutPut Path
        outPath = replace(inPath, objFso.GetFileName(inPath), left(objFso.GetFileName(inPath), InStrRev(objFso.GetFileName(inPath),".") - 1) & "_SPACE_ADDED.csv")
    
        ' Read the file
        set objTextFile = objFso.OpenTextFile(inPath)
    
    
        'Now Creating the file can overwrite exiting file
        set aNewFile = objFso.CreateTextFile(outPath, True) 
        aNewFile.Close  
    
        'Open the file to appending data
        set aNewFile = objFso.OpenTextFile(outPath, 8) '2=Open for writing 8 for appending
    
        ' Reading data and writing it to new file
        Do while NOT objTextFile.AtEndOfStream
            arrStr = split(objTextFile.ReadLine,",")
    
            sLine = ""  'Clear previous data
    
            For i=lbound(arrStr) to ubound(arrStr)
                sLine = sLine + " " + arrStr(i) + ","
            Next
    
            'Writing data to new file
            aNewFile.WriteLine left(sLine, len(sLine)-1) 'Get rid of that extra comma from the loop
    
    
        Loop
    
        'Closing new file
        aNewFile.Close  
    
    Next ' This is for next file
    
    set aNewFile=nothing
    set objFso = nothing
    set objArgs = nothing
    

提交回复
热议问题