-1

我正在使用 openoffice calc 宏写入文本文件,将十六进制转换为十进制后,然后对结果使用 char 函数。当我使用函数在 openoffice 中转换时见下文 - 将 '88' 转换为十六进制。它正确显示在论坛结果中。

字符

但是,如果我们在运行下面的宏后打开文本文件,它会做同样的事情,“?” 被展示。我怎样才能更正这一点并获得在文本文件中打印的确切值?

Sub Sheet2

Dim AsciiString As String
Dim t As String
Dim DataArray As Variant
intFH = FreeFile()
Open "e:\Temp.txt" For Output As intFH
 t= "&H" & "88"
 AsciiString = AsciiString & chr(cdec(t))
 Print #intFH, AsciiString
close #intFH
End Sub
4

1 回答 1

0

您需要 Openoffice(根据您的问题的文本和标签)或 Excel(根据功能和 vba 代码)的解决方案吗?

关于 OpenOffice/LibreOffice:您的宏需要做两处细微的修改:

  • 只需将变量的类型更改tLong, 和
  • 删除cdec()函数调用 - OpenOffice Calc 中没有这样的函数,它显然是 Excel VBA 宏的人工制品。

现在,如果您使用 ASCII 代码(十六进制5E/十进制94表示^,它将写入^文件:

Sub Sheet2
    Dim AsciiString As String
    Dim t As Long
    intFH = FreeFile()
    Open "/tmp/Temp.txt" For Output As intFH
    t= "&H" & "5E"
    AsciiString = chr(t)
    Print #intFH, AsciiString
    close #intFH
End Sub
于 2012-05-26T10:50:05.627 回答