【问题标题】:Converting excel files to UTF-8 .TSV将 excel 文件转换为 UTF-8 .TSV
【发布时间】:2020-11-30 07:06:18
【问题描述】:

每周我必须将 25 个或更多的 excel 文件转换为 UTF-8 .tsv 文件。截至目前,我手动使用 Editplus 应用程序进行操作。

我在谷歌和其他网站上搜索我只获得 UTF-8 .csv 转换。

有没有办法实现自动化?

【问题讨论】:

  • 参考this。这是用于 csv 文件。 join( vr, vbTab) 这可以创建制表符分隔的文件。
  • 谢谢!我这里有 104 个头文件我需要所有 104 个头文件..??我应该在这里应用上述更改 vTxt(n) = Join(vR, ",")??

标签: vba csv excel-2010


【解决方案1】:

试试,

Sub test()
    Dim Wb As Workbook
    Dim Ws As Worksheet
    Dim rng As Range
    Dim myfile As String
    
    'If you need a loop, start here
    Set Wb = ActiveWorkbook
    Set Ws = Wb.Sheets(1)
    Set rng = Ws.UsedRange
    myfile = "testTab.txt"
    
    TransToTab myfile, rng
    'Loop end
End Sub
Sub TransToTab(myfile As String, rng As Range)

    Dim vDB, vR() As String, vTxt()
    Dim i As Long, n As Long, j As Integer
    Dim objStream
    Dim strTxt As String, strHeader As String

    Set objStream = CreateObject("ADODB.Stream")
    vDB = rng
    For i = 1 To UBound(vDB, 1)
        n = n + 1
        ReDim vR(1 To UBound(vDB, 2))
        For j = 1 To UBound(vDB, 2)
                vR(j) = vDB(i, j)
        Next j
        ReDim Preserve vTxt(1 To n)
            vTxt(n) = Join(vR, vbTab)
    Next i
    strTxt = Join(vTxt, vbCrLf)
    With objStream
        .Charset = "utf-8"
        .Open
        .WriteText strTxt
        .SaveToFile myfile, 2
        .Close
    End With
    Set objStream = Nothing

End Sub

【讨论】:

  • 非常感谢! myfile = "testTab.txt" 只需要澄清这一行。为什么我们在 .txt 中硬编码名称?我想从 UTF-8 格式的 excel 创建 .tsv 文件。我尝试了上面正在运行的代码,但无法获得或找到任何结果!!!!
  • @Linga,你可以这样重命名它(myfile = "testTab.tsv")。只需将其更改为您想要的任何名称。并添加文件路径。
  • 哦,好的,在哪里添加路径?
  • @Linga, myfile = path & \" & "testTab.txt"
  • 令人惊讶的是它工作得很好!但不是以 UTF-8+BOM 格式保存 UTF-8 文件。能做到吗?
猜你喜欢
  • 1970-01-01
  • 2014-07-19
  • 1970-01-01
  • 2012-06-01
  • 2012-11-24
  • 2021-02-11
  • 2015-09-21
  • 1970-01-01
相关资源
最近更新 更多