String 将西里尔字符读取到VBA变量
我想从包含俄文字符的Excel单元格中读取VBA字符串变量或变量(用于矩阵)的值。假设在String 将西里尔字符读取到VBA变量,string,vba,encoding,cyrillic,String,Vba,Encoding,Cyrillic,我想从包含俄文字符的Excel单元格中读取VBA字符串变量或变量(用于矩阵)的值。假设在A1单元格中有俄文字符(正确显示) 当我把它读作MyString=Range(“A1”).Value时,变量MyString读作???????????????????????????150???50 同样,该测试失败: ? Activecell.Value 当我使用此代码将字符串转储到文件时: Dim myFile As String Dim N As Integer N = FreeFile() myFi
A1
单元格中有俄文字符(正确显示)
当我把它读作MyString=Range(“A1”).Value
时,变量MyString
读作???????????????????????????150???50
同样,该测试失败:
? Activecell.Value
当我使用此代码将字符串转储到文件时:
Dim myFile As String
Dim N As Integer
N = FreeFile()
myFile = "C:\MyFileName.txt"
Open myFile For Output As #N
Print #N, SQL
Close #N
Debug.Print myFile
我发现VBA控制台不支持输出Unicode字符。这并不意味着它们已经坏了。将它们输出到另一个单元格-它应该按预期工作。@Tomalak到另一个单元格可能是。但我必须将它们保存在变量中,然后保存在字符串变量中。当我用ADO将这样一个字符串变量发送到服务器或将它(
Print#N,MyString
)转储到文本文件时,我有??
。如何将它们转储到文件中?使用TextStream对象保存文件。它有一个Unicode选项。请参见转到您的区域设置控制面板->时钟、语言和区域->区域和语言
,选择管理
选项卡,在非Unicode程序的语言中单击更改系统区域设置
。将其更改为您正在使用的任何语言(英语除外),然后重新启动您的电脑(必需!)。这是为了在ASCII表中提供代码>=128的正确字符(在Unicode之前的时代,语言就是这样设置的)。你应该把它修好。