在写入文本时打印问号

时间:2012-05-26 07:21:02

标签: macros openoffice.org

我使用openoffice calc宏写入文本文件,将十六进制转换为十进制,然后在结果上使用char函数。当我在openoffice中使用函数转换时看到以下内容 - 以十六进制转换'88'。它在forumula结果中正确显示。

char

但是如果我们在运行下面的宏之后打开文本文件,这会做同样的事情,'?'被展示。我该如何纠正这个并获得文本文件中打印的确切值?

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

1 个答案:

答案 0 :(得分:0)

您是否需要Openoffice的解决方案(根据您的问题的文本和标签)或Excel(根据函数和vba代码)?

关于OpenOffice / LibreOffice:您的宏只需稍作修改即可:

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

现在,如果您对5E使用ASCII代码(十六进制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