gpt4 book ai didi

excel - 在 VBA 中读取国际/特殊字符

转载 作者:行者123 更新时间:2023-12-04 20:42:43 25 4
gpt4 key购买 nike

我逐行阅读 Excel 电子表格,并为每一行创建一个包含列中信息的文本文件。

某些电子表格单元格中有时会出现外来文本。在调试器中,外来文本显示为“?”问号。尝试将这些问号写入文本文件时失败。

这是从行读取值到字符串数组的代码片段

    Set oFS = CreateObject("Scripting.Filesystemobject")
For Each rID In oSh.UsedRange.Columns("A").Cells
For Each rValue In oSh.UsedRange.Rows(rowCount).Cells
ReDim Preserve columnValues(columnCount)
columnValues(columnCount) = rValue
columnCount = columnCount + 1
Next
Next

这是写入文本文件的代码
sFNText = sMakeFolder & "\" & rID.Value & ".txt"
Set oTxt = oFS.OpenTextFile(sFNText, 2, True)

For i = 0 To UBound(columnTitles)
oTxt.Write columnTitles(i) & ": " & columnValues(i) & vbNewLine
Next i

oTxt.Close

我尝试过更改 opentextfile 的格式,并使用 AscW 和 ChrW 与 ansi 相互转换。

编辑:特别是我试图阅读希腊符号(pi,omega等)并将它们写回文本文件。我用过
StrConv(Cells(1, 1), vbUnicode)

How can I create text files with special characters in their filenames 中详述的方法并且已经使该示例正常工作。现在将其写入文本文件似乎存在问题。在使用他的 Print 命令时,nixda 的示例似乎是孤立地工作的,但是当我尝试
otxt.Write

将我存储的变量写入文本文件,它会写出垃圾,而不是产生正确结果的打印方法。查看调试器,这两个变量的存储方式相同(打印方法+写入),所以我相信现在归结为输出方法(otxt.Write),它将存储的变量转换为垃圾。我尝试使用 OpenTextFile 的 -1 和 -2 选项 - 都产生垃圾结果。

最佳答案

我有以下工作表:

enter image description here

和以下代码:

Sub writeUnicodeText()
Dim arr_Strings() As String
i = 0
For Each oCell In ActiveSheet.Range("A1:A4")
ReDim Preserve arr_Strings(i)
arr_Strings(i) = oCell.Value
i = i + 1
Next

Set oFS = CreateObject("Scripting.Filesystemobject")
Set oTxt = oFS.OpenTextFile("C:\users\axel\documents\test.txt", 2, True, -1)
For i = 0 To UBound(arr_Strings)
oTxt.Write arr_Strings(i) & vbNewLine
Next i
oTxt.Close
End Sub

这会产生以下文件:

enter image description here

关于excel - 在 VBA 中读取国际/特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29256802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com