簡體   English   中英

分號分隔的 UTF8 CSV Excel 使用 VBA 和 sep=;

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM