[英]Semicolon delimited UTF8 CSV Excel using VBA and sep=;
上下文:我有一個 csv UTF8 文件,它是從 excel 工作簿中的值生成的。 分隔符必須是分號,以便 API 獲取文件並處理數據。 這必須自動完成,因為很多人都會使用這個宏。
問題:我當前的設置是用逗號分隔符保存 csv UTF8 文件,由於 API,這對我不起作用。
解決方案:我發現通過在單元格 A1 中添加“sep=;” 我能夠繞過 excel 中的當前設置,並且它將使用分號而不是逗號。
問題2:當我直接在宏中保存文件時,sep=; 不管用。 如果用戶單擊 Excel 中的保存圖標,則分隔符將變為分號而不是逗號。
我試圖理解為什么將文件直接保存在宏中不會使我的分隔符切換到分號,而是手動保存。
謝謝 !
這是我的團隊成員找到的解決方案。
Sub SaveAsCSV(ByRef cells As Range, ByVal filename As String, Optional ByVal separator As String = ";")
Dim csv As String
Dim r As range, c As range
For Each r In cells.Rows
For Each c In r.Columns
If Application.IsText(c) Then
csv = csv & Chr(34) & c & Chr(34)
Else
csv = csv & c
End If
csv = csv & separator
Next
csv = Left(csv, Len(csv) - Len(separator))
csv = csv & Chr(13)
Next
Dim file As Object
Set file = CreateObject("adodb.stream")
file.Type = 2
file.Mode = 3
file.Charset = "UTF-8"
file.Open
file.WriteText (csv)
file.SaveToFile (filename)
file.Close
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.