Как экспортировать файл CSV, в котором значения и поля заключены в двойные кавычки (") из Excel 2004 (Mac)?
Например
"Name","Telephone"
"John Doe","555-5009"
Как экспортировать файл CSV, в котором значения и поля заключены в двойные кавычки (") из Excel 2004 (Mac)?
Например
"Name","Telephone"
"John Doe","555-5009"
РЕДАКТИРОВАТЬ:
Мне понадобилось около двух лет, чтобы вернуться и отредактировать это. Вот обходной путь, который, мы надеемся, обернет все ваши данные в кавычки и сохранит их как CSV. Вам нужно будет добавить ссылку на Microsoft Scripting Runtime
в свой проект VBA (в разделе « 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
Предыдущая неудачная попытка (оставлена только для справки; пожалуйста, не используйте это):
Вот макрос, который откроет новую книгу и введет все данные с вашего листа, каждое значение будет заключено в кавычки. Затем вы можете сохранить эту новую книгу как.CSV, не мешая вашей оригинальной книге. Это будет работать, даже если ваши исходные данные содержат формулы.
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