vba代码中的希伯来文本不能正确解码

我已经开发了一个工作簿,带有一些底层的vba代码。 工作手册是希伯来语,vba代码也使用希伯来语,例如比较希伯来语中的string,或使用希伯来语名称访问表格。 我已经在Excel 2010中开发了此工作簿,并将其保存为xlsm文件(已启用macros)。 这一切都运行良好,在各种机器和Excel版本,除了在某些电脑上安装了Excel 2007。 问题似乎是,我在vba代码中使用的希伯来string没有正确解码,并被视为“胡言乱语”。 工作簿本身(即单元格或工作表名称)中的希伯来语文本是完全正确的,只有在VBA代码中使用的文本本身似乎没有正确读取。 我想要做的就是在打开工作簿后自动设置编码/解码,这样就可以在任何机器上使用任何excel版本。

在阅读了一些在这里和这里我意识到这发生在系统区域不是希伯来语时。 我可以使用vba代码在Excel中dynamic设置它(即不在操作系统级别更改它),以便我写的希伯来文本可以工作吗? 否则,我需要从vba代码中删除所有的希伯来文字。

从ADODBstream中使用以下函数(您需要引用最新的Microsoft ActiveX数据对象库)

Public Function CorrectHebrew(gibberish As String) As String Dim inStream As ADODB.stream Set inStream = New ADODB.stream inStream.Open inStream.Charset = "WIndows-1255" inStream.WriteText gibberish inStream.Position = 0 inStream.Charset = "UTF-8" CorrectHebrew = inStream.ReadText inStream.Close End Function