Excel VBA 中的拆分函数返回奇数字符

Split function in Excel VBA returning odd characters

我有一个包含丹麦字符的文本文件

"Næsby IF afdeling * Badminton * Sport *"

将它们拆分并放置在数组中时,丹麦字符会“乱七八糟”

这是要拆分成 Excel 列的 *.TXT 文件中的完整文本字符串:

"Ulrich*wiingreen*BenPauWin05 Aps*Søballehøjen 12*5270*Odense N*+4530212215*ulrich@wiingreen.eu*Næsby IF afdeling*Badminton*Sport* *Hal 1*Hal 2*99*11/03/2022 13:00*11/03/2022 17:00*kkkk"

执行此操作的代码是:

    If InStr(FileName, "forespoerg_") <> 0 Then
        OrderArr = Split(OrderDetails, "*")
        OrderRow = OrdersDB.Range("A99999").End(xlUp).Row + 1 
                      
        OrdersDB.Cells(OrderRow, 1).Value = Application.WorksheetFunction.Max(Range("A4:A9999")) + 1
         OrdersDB.Cells(OrderRow, 2).Value = Date
         For OrderCol = 3 To 20
            OrdersDB.Cells(OrderRow, OrderCol).Value = OrderArr(OrderCol - 3)
         Next OrderCol
    End If

拆分效果很好。不幸的是,角色被搞砸了。 示例:“Søballehøjen 12”导入为:“Sáballehøjen 12”

任何人都可以提供解决此字符问题的提示。

不确定,但我怀疑编码不匹配。您可以尝试使用 VS Code 打开您的文本文件,并在右下角查看其编码是什么。
然后,您可以使用 StrConv(yourTextVar, someconversion),其中 someconversion 是一个类似于 vbUnicodevbFromUnicode 的值(请参阅选项 here

如何导入文本文件?如果您的文件是 unix 或其他非 Windows 风格的文件,您可以尝试使用 ADODB.Stream 读取文件,它可以很好地控制编码。我很快找到了样本 here.