首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用excel vba宏保存ut8编码

如何使用excel vba宏保存ut8编码
EN

Stack Overflow用户
提问于 2014-04-25 03:16:03
回答 1查看 1.6K关注 0票数 0

我正在从宏生成tsv文件,但是数据包含像“tm”符号这样的特殊字符,这反过来将被输入到服务器中的mysqlimport中。但是由于特殊字符,所以它不会在特殊字符之后加载字符串的其余部分。

我有以下宏将其保存到我的预分隔符和附件中,但是现在我想指定我想要将文件保存在其中的编码。我该怎么做?

代码语言:javascript
复制
Sub tsv()
    Dim SrcRg As Range
    Dim CurrRow As Range
    Dim CurrCell As Range
    Dim CurrTextStr As String
    Dim ListSep As String
    Dim FName As Variant
    FName = Application.GetSaveAsFilename("", "TSV File (*.tsv), *.tsv")
    'FName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")


    'assign the character delimiter you want
    ListSep = Chr(9)
    'ListSep = "|"
    'assign the enclosure character you want
    ListEnc = "^"


    If Selection.Cells.Count > 1 Then
        Set SrcRg = Selection
    Else
        Set SrcRg = ActiveSheet.UsedRange
    End If

    Open FName For Output As #1

    For Each CurrRow In SrcRg.Rows
        CurrTextStr = ""

        For Each CurrCell In CurrRow.Cells
          CurrTextStr = CurrTextStr & ListEnc & CurrCell.Value & ListEnc & ListSep
        Next

        While Right(CurrTextStr, 1) = ListSep
      CurrTextStr = Left(CurrTextStr, Len(CurrTextStr) - 1)
        Wend

        Print #1, CurrTextStr
    Next

    Close #1
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-25 04:27:47

使用ADODB流对象。

代码语言:javascript
复制
        Set BS = CreateObject("ADODB.Stream")
            '2 = text so use writetext rather than 1 = binary and use write
        BS.type = 2
            'Get the list of chartypes by typing in a command prompt ***reg query HKEY_CLASSES_ROOT\MIME\Database\Charset*** 
            BS.Charset = "UTF-8"
        BS.open
        BS.WriteText "Hi kiddies"
        'A=Array(CByte("M"),CByte("Z"))
        'BS.Write A
        BS.SaveToFile "c:\myfile.txt", 2
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23283553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档