Exporte CSV com valores entre aspas duplas

1

Como eu exporto um arquivo CSV onde os valores e campos estão entre aspas duplas (") do Excel 2004 (Mac)?

Por exemplo,

"Name","Telephone"
"John Doe","555-5009"
    
por Anriëtte Myburgh 12.10.2011 / 16:12

1 resposta

-1

EDITAR:
Só levei quase dois anos para voltar e editar isso. Aqui está uma solução que, esperamos, coloque todos os seus dados entre aspas e salve como CSV. Você precisará adicionar a referência Microsoft Scripting Runtime ao seu projeto VBA (em Tools > References... ).

Sub addquotes()
Dim s As Worksheet
Dim tmpR As Range
Dim tmpArray() As Variant, out As String
Dim fso As FileSystemObject, ts As TextStream

Application.DisplayAlerts = False
Set s = ActiveSheet
Set tmpR = s.UsedRange

'Set format of all cells as Text.
tmpR.NumberFormat = "@"
tmpArray = tmpR.Value

For i = LBound(tmpArray, 1) To UBound(tmpArray, 1)
    For j = LBound(tmpArray, 2) To UBound(tmpArray, 2)
        If j = LBound(tmpArray, 2) Then out = out & Chr(34)
        out = out & tmpArray(i, j) & Chr(34)
        If j <> UBound(tmpArray, 2) Then
            out = out & "," & Chr(34)
        Else
            out = out & vbLf
        End If
    Next j
Next i
Set fso = New FileSystemObject
Set ts = fso.OpenTextFile("C:\Users\Editor 3\Desktop\yourcsv.csv", ForWriting, True)
ts.Write out
ts.Close
Application.DisplayAlerts = True
End Sub

Tentativa anterior falhada (deixada apenas para referência; por favor, não use isso):
Aqui está uma macro que abrirá uma nova pasta de trabalho e inserirá todos os dados da sua planilha com cada valor entre aspas. Você pode salvar essa nova pasta de trabalho como um .CSV sem perturbar sua pasta de trabalho original. Isso funcionará mesmo que seus dados originais incluam fórmulas.

Sub addquotes()

Dim s As Worksheet, newS As Worksheet
Dim tmpR As Range
Dim tmpArray() As Variant

Set s = ActiveSheet
Set tmpR = s.UsedRange

'Loads all data from sheet into array.
tmpArray = tmpR.Value

'Adds quotes around members of array if not blank.
For i = 1 To UBound(tmpArray, 1)
    For j = 1 To UBound(tmpArray, 2)
        If tmpArray(i, j) <> "" Then
            tmpArray(i, j) = """" & tmpArray(i, j) & """"
        End If
    Next j
Next i

'Open new workbook and enter transformed data.
Set NewBook = Workbooks.Add
Set newS = NewBook.Sheets(1)
newS.Range("A1").Resize(UBound(tmpArray, 1), UBound(tmpArray, 2)) = tmpArray

End Sub
    
por 14.10.2011 / 02:39